亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ Java &#&面接の質(zhì)問 Meituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。

Meituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。

Aug 24, 2023 pm 03:20 PM
Javaの面接の質(zhì)問

今日は、この質(zhì)問を面接官がその場で手書きで手早く整理してもらいました。 : チャットを続けましょう。データ構(gòu)造とアルゴリズムについて、簡単なソートを書いてもらえますか? (話している間、彼は私の履歴書をひっくり返してペンを渡しました。つまり、履歴書の裏に書くように言われました)

新人の私: どういう意味ですか?ここに書きますか? (履歴書を指しながら)

面接官: はい

新人の私: いいえ

面接官: はい、今日の面接はこれで終わりです

新人の私: (とても怒っています。これは労使の履歴書です。労使の履歴書にコードを書きますか?) Shadiao

インタビュアー: (振り返り、混亂して)

よく考えたらまだ若かったけど、今はそんなことはないでしょう。とにかく書くだけ、それはただの紙切れです。

実は、クイックキューは簡単なのですが、手書きで書けない人も多いのではないでしょうか?難しいですか? いくつかの方法でその場で手書きできる人もたくさんいます。

Meituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。 私は初心者ですが手書きはできるので、面接前に意図的に「

口述筆記

」を準(zhǔn)備しただけです。

次に分析分析----クイックソートを行っていきます。

背景

百科事典より:

クイック ソートは、1962 年に C. A. R. Hoare によって提案されました。その基本的な考え方は、1 回の並べ替えで並べ替え対象のデータを 2 つの獨立した部分に分割することです。一方の部分のすべてのデータは、もう一方の部分のすべてのデータよりも小さいため、この方法を使用して、データの 2 つの部分をすばやく分離します。並べ替えでは、並べ替えプロセス全體を [再帰的に ] 実行できるため、データ全體が順序付けされたシーケンスになります。

この概念を理解するのは非常に困難です。

これは次のように理解できます:

クイック ソートはバブル ソートの改良版です。全體のプロセスは、物事をばらばらにしてつなぎ合わせることです。すべての要素は順序付けられた狀態(tài)に達(dá)します。

中心的なアイデア:

まずシーケンスから基本番號として數(shù)値を取得し、次にサイズ分割を?qū)g行します;

分割プロセス中に、この數(shù)値を比較します。大きい數(shù)値をすべて右側(cè)に配置し、それ以下の數(shù)値をすべて左側(cè)に配置します。

各間隔に數(shù)値が 1 つだけになるまで、左右の間隔に対して 2 番目のステップを繰り返します。 , これで並び替えは完了です。

導(dǎo)入事例

以下は、寫真の形式で段階的に分解したものです。そしてテキスト。

配列 [4,1,6,2,9,3] を例として取り上げます。

最初のパス:

  • 先進(jìn)行拆分[4,1,6,2,9,3] 選擇元素4 為軸心點
  • 檢查是否1 < 4 (軸心點)
  • 檢查是否6 < 4 (軸心點)
  • 檢查是否2 < 4 (軸心點)
  • 2 < 4 (軸心點) 是為真,將指數(shù)2和儲存指數(shù)6 進(jìn)行交換
  • ##檢查是否9 < 4 (軸心點)
  • 檢查是否3 < 4 (軸心點)
  • 3 < 4 (軸心點) 為真,將指數(shù)3和儲存指數(shù)6 進(jìn)行交換
  • 將軸心點4和儲存指數(shù)3進(jìn)行交換
  • 此時軸心點4左邊全部小於4,右邊大於4

Meituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。

#目前陣列順序為[3,1,2,4,9, 6]。

下一步:

  • 先將左邊先排好序
  • 選擇元素3 為軸心點
  • 檢查是否1 < 3 (軸心點)
  • #檢查是否2 < 3 (軸心點)
  • 將軸心點3和儲存指數(shù)值2進(jìn)行交換
  • 現(xiàn)在軸心點已經(jīng)在排序後的位置
  • #進(jìn)行分割[2,1] 選擇2 為軸心點
  • 檢查是否1 < 2 (軸心點)
  • 左邊遍歷完成,將軸心點2和儲存指數(shù)1 進(jìn)行交換
右邊同理…避免視覺疲勞就不一一描述了,可看下面動態(tài)示範(fàn)圖。

?

Meituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。

2. 快速排序法全流程


Meituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。

3.程式碼實作

下面,我們使用Java語言來實作前面的快排案例:

import java.util.Arrays;

public class QuickSortDemo {
    //四個步驟:
    //1.比較startIndex和endIndex,更喜歡理解為校驗
    //2.找出基準(zhǔn)
    //3.左邊部分排序
    //4.右邊排序
    public static void quickSort(int[] arr, int startIndex, int endIndex) {
        if (startIndex < endIndex) {
            //找出基準(zhǔn)
            int partition = partition(arr, startIndex, endIndex);
            //分成兩邊遞歸進(jìn)行
            quickSort(arr, startIndex, partition - 1);
            quickSort(arr, partition + 1, endIndex);
        }
    }

    //找基準(zhǔn)
    private static int partition(int[] arr, int startIndex, int endIndex) {
        int pivot = arr[startIndex];
        
        int left = startIndex;
        int right = endIndex;
        
        //等于就沒有必要排序
        while (left != right) {
            
            while (left < right && arr[right] > pivot) {
                right--;
            }
          
            while (left < right && arr[left] <= pivot) {
                left++;
            }
            //找到left比基準(zhǔn)大,right比基準(zhǔn)小,進(jìn)行交換
            if (left < right) {
                swap(arr, left, right);
            }
        }
        //第一輪完成,讓left和right重合的位置和基準(zhǔn)交換,返回基準(zhǔn)的位置
        swap(arr, startIndex, left);
        return left;
    }

    //兩數(shù)交換
    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    public static void main(String[] args) {
        int[] a = {3, 1, 2, 4, 9, 6};
        quickSort(a, 0, a.length - 1);
        //輸出結(jié)果
        System.out.println(Arrays.toString(a));
    }
}

輸出結(jié)果:

[1, 2, 3, 4, 6, 9]

程式碼實現(xiàn),建議結(jié)合前面的動圖,理解起來就更簡單了。

快排寫法還有幾種,有興趣的可以自行找一下,另外也可以看看維基百科中,快排是怎麼介紹的。

4.複雜度分析

#時間複雜度:

最壞情況就是每一次取到的元素就是數(shù)組中最小/最大的,這種情況其實就是冒泡排序了(每一次都排好一個元素的順序)

這種情況時間複雜度就好計算了,就是冒泡排序的時間複雜度:T[n] = n * (n-1) = n^2 n;

最好情況下是O(nlog2n),推導(dǎo)過程如下:

(遞迴演算法的時間複雜度公式:T[n] = aT[n/b] f(n) ?

https://img2018.cnblogs.com/blog/1258817/201903/1258817-20190326191158640-601403776.png

所以#nlogn##所以#nlogn#(所以#nlog2)##n#nlogn#n#n#n#n#2)#n#n#n#n#2)#n#nlogn#(所以#nlogn.

空間複雜度:

快速排序使用的空間是O(1)的,也就是個常數(shù)級;而真正消耗空間的就是遞歸呼叫了,因為每次遞歸就要保持一些資料:

最優(yōu)的情況下空間複雜度為:

O(log2n)

;每次都平分?jǐn)?shù)組的情況最差的情況下空間複雜度為:

O( n )

;退化為冒泡排序的情況所以

平均空間複雜度為O(log2n)

5. 快速排序法總結(jié)

    #預(yù)設(shè)取第一個元素為軸心點(軸心點的確認(rèn)區(qū)分了「快速排序法」和「隨機(jī)排序法」)兩種演算法,而隨機(jī)排序則隨機(jī)rand一個元素為軸心點;
  • 如果兩個不相鄰元素交換,可以一次交換消除多個逆序,加快排序進(jìn)程。

後記 最後再說說,其實你覺得快速排序在工作上有用嗎?工作近十年的我真的沒用過,但我知道這個快排的想法。如果面試前不準(zhǔn)備,我反正是肯定寫不出來的,你呢?

#

以上がMeituan インタビュー: 簡単なスケジュールを手書きしてください。ショックを受けました。の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

インタビュアー: Spring Aop の共通アノテーションと実行シーケンス インタビュアー: Spring Aop の共通アノテーションと実行シーケンス Aug 15, 2023 pm 04:32 PM

Spring について知っている必要があるので、Aop のすべての通知の順序について話しましょう。Spring Boot または Spring Boot 2 は AOP の実行順序にどのように影響しますか? AOP で遭遇した落とし穴について教えてください。

特定のグループへのインタビュー: オンラインで OOM に遭遇した場合、どのようにトラブルシューティングを行うべきですか?の解き方?どのようなオプションがありますか? 特定のグループへのインタビュー: オンラインで OOM に遭遇した場合、どのようにトラブルシューティングを行うべきですか?の解き方?どのようなオプションがありますか? Aug 23, 2023 pm 02:34 PM

OOM は、プログラムに脆弱性があることを意味します。これは、コードまたは JVM パラメータ設(shè)定が原因である可能性があります。この記事では、Java プロセスが OOM をトリガーした場合のトラブルシューティング方法について読者に説明します。

Ele.me の筆記試験問題は簡単そうに見えますが、多くの人が困惑します。 Ele.me の筆記試験問題は簡単そうに見えますが、多くの人が困惑します。 Aug 24, 2023 pm 03:29 PM

多くの企業(yè)の筆記試験の問題には落とし穴があり、うっかり陥る可能性がありますので、甘く見ないでください。サイクルに関するこの種の筆記試験問題に遭遇した場合は、冷靜に考えて段階的に解答することをお勧めします。

先週、XX保険の面接を受けましたが、とても良かったです。 ! ! 先週、XX保険の面接を受けましたが、とても良かったです。 ! ! Aug 25, 2023 pm 03:44 PM

「先週、グループの友人が平安保険の面接に行きました。結(jié)果は少し殘念でした。非常に殘念ですが、落ち込まないでほしいと思います。あなたが言ったように、基本的には、ここで出た質(zhì)問はすべて解決しました」面接は面接の質(zhì)問を暗記すれば解けますので、頑張ってください!

面接での 5 つの質(zhì)問。すべてに正解できる人は 10% 未満です。 (答え付き) 面接での 5 つの質(zhì)問。すべてに正解できる人は 10% 未満です。 (答え付き) Aug 23, 2023 pm 02:49 PM

この記事では、Java String クラスに関する 5 つの面接の質(zhì)問を取り上げます。私は面接プロセス中にこれら 5 つの質(zhì)問のうちのいくつかを個人的に経験しました。この記事は、これらの質(zhì)問に対する答えがなぜこのようになるのかを理解するのに役立ちます。

初心者も BAT 面接官と競爭できる: CAS 初心者も BAT 面接官と競爭できる: CAS Aug 24, 2023 pm 03:09 PM

Java並行プログラミングシリーズの番外編「C A S (Compare and swap)」は、絵と文章でわかりやすく、インタビュアーと夢中で會話できるスタイルを保っています。

ほぼすべての Java インタビューで聞かれる質(zhì)問: ArrayList と LinkedList の違いについての話 ほぼすべての Java インタビューで聞かれる質(zhì)問: ArrayList と LinkedList の違いについての話 Jul 26, 2023 pm 03:11 PM

Java のデータ構(gòu)造がインタビューの焦點です。Java のインタビューに參加したことのある人なら誰でも、ある程度の経験があるはずです。面接官がこのような質(zhì)問をするとき、単に「使い方を知っている」というレベルにとどまるのではなく、Java で一般的に使用されるデータ型の基礎(chǔ)となる構(gòu)造を?qū)W習(xí)したかどうかを確認(rèn)したいことがよくあります。

インタビュアー: クラスロードプロセスについて教えてください (10 個の図) インタビュアー: クラスロードプロセスについて教えてください (10 個の図) Aug 23, 2023 pm 03:05 PM

クラスを使用する場合は、ClassLoader を通じてクラスをメモリにロードする必要があります。

See all articles