質問

ったとても良いタイミングでの質問の中で面接を行います。いO(nlogn)がほとんどの人は使用Quicksortの代わりにMergesort.この理由は何でしょうか?

役に立ちましたか?

解決

QuicksortはO(n2)最悪実行時O(nログn 平均場合を行います。しかし、この優れた合う多くのシナリオで多くの要因に影響を与えアルゴリズムの実行時、および、時を受ける資格を手に入れることがこんなこともあるのだなと、quicksort勝。

特に、しばしば引用ランタイムのソートアルゴリズムとの比較のスワップ取引を行うのに必要なソートすることも可能です。これは実際良いパフォーマンスの指標は、特に以来、独自の基になるハードウェアデザイン。しかし、その他のものなど地域の参照(私たちの読み要素がたくさんあるだろうキャッシュ?) –においても、重要な役割を果た現在のハードウェアQuicksort特に小さなスペースや展示の良いキャッシュの産地であり、より合う場合も多い。

また、非常に簡単で避けquicksortの最悪時O(n2)によるところがほとんど適切な選択は、ピボットなどの弱いランダムにあるこの戦略).

実際、多くの近代の実装quicksort(特に特定のラスタ化ライブラリを++'s std::sort は実際に introsort, は、理論的な最悪の場合O(nログn)との合併に並べ替えができます。実はこの限に抑えることによって再帰深さに切り替えは、異なるアルゴリズム(heapsort)までを超えるとログn.

他のヒント

多くの人々においては、平均ケースの性能quicksortによmergesort. これがtrueの場合に想定する定数時間アクセスのメモリしました。

RAMこの想定は一般的には悪くないのでは常にtrueでのキャッシュかれていることは否めませんが).ただし、お客様のデータ構造は大きなライブディスクにより、そのquicksortが 死者 この平均のディスクはそのように200をランダムです。その同じディスクのないトラブル読み取りまたは書き込みメガバイト/秒のデータを順次配置する。これこそ正にmergesortます。

そのためのデータでは、ソートディスクには、本当に、本当に使いたいかのバリエーションmergesort.一般的にはまquicksort sublistsを統合して上記一部のサイズzemax®ファイルをご参照ください。)

ただ データセットのサイズんの防止などに努めます。のためのインスタンスはまさにそのた標準のアドバイスをドロップ指数の前に、まず大きなデータの負荷データベース、およびその後の復興の指数です。の維持、指数は過負荷手段を求める。この場合の指数のデータベースで再構築の指標による分別の情報を扱うものを使用しmergesort。 その荷重でBTREE datastructureの指数です。(BTREEs自然保するため、できる負荷からのソート、またはソートされたデータセットが少ないとディスク。)

いているようにみえますが、これが理解などを避けるためのディスクとして作らせて頂いています。データ加工処理時間かかっていたよりも日又は週間です。

実際、QuickSortはO(n2).その 平均ケース 走行時間がO(nlog n))、その 最悪の場合 はO(n2生起動するリストが少なくない。ランダム化はO(n)もちろん、この変わりません、最悪の場合において、防止、悪意のあるユーザーからおう長い時間がかかる。

QuickSortが人気です:

  1. しやすさに違いがありますが、場所(MergeSort要するメモリを線形数の要素をソートします).
  2. 小さな隠れた定数です。

"多くの人に利用Quicksortの代わりにMergesort.この理由は何でしょうか?"

一つ心理的な理由が与えられていないというわけで、Quicksortは賢く名前が命名されます。ieの良いマーケティング。

あQuicksortリpartioningく、最高の汎用ソートアルゴリズムが飛浅草寺と浅草神社のことを"off"に並べ替え音をより強力なり"が合併し"並べ替えができます。

として、最悪の場合のQuicksortはO(n^2)がmergesortとheapsort泊O(nlogn).平均場合には、O(nlogn);なので、大多数の場合に匹敵します。

こQuicksortより平均的には、内側のループとの比較の数値の単一の二の両方の条件が異なれます。つまり、Quicksortは半額として多くの読み込みとして、他の二つのアルゴリズム現代のCpu性能を大きく支配され、アクセス時間、最終的にQuicksortるということもにしている。

いることができたことを付記する。にアルゴリズムをここまで挙げ(mergesort,quicksort、ヒープソート)のみmergesortは安定しています。であることは変わらない方の値が同じ鍵があります。場合があることが望ましい。

でも、真実と言われる実際の状況でほとんどの人が良いパフォーマンスとquicksortが---速=)

すべてのソートアルゴリズムを借りています。見 Wikipedia記事はソートアルゴリズム も概説する。

から 文を引用される場合は、出典が"入Quicksort:

Quicksortも競合 mergesort、再帰う アルゴリズムのもの 最悪の場合、Θ(nlogn)走ります。Mergesortは安定なソートとは異なり、 quicksortとheapsortき 容易に適応した運用のリンク リストは、非常に大きなリストに保存され にアクセスなどのメディアのディスク ストレージやネットワーク接続ストレージ.がquicksortを書き込めるかどうかを示しま 操作のリンクリストが多くなっています に苦しむ貧しいピボット選択なし ランダムアクセス。主な欠点 のmergesortすると共に、営業 に配列が必要であり、Θ(n)補助 スペースの場合は、 の変異体quicksort付場所 分割と末尾再帰の使用 みΘ(logn)。(ご注意くださ 営業のリンクリストmergesort みが必要で、一定の額 補助保管します。)

Mu! Quicksortようにし、それに適した異なる種類の申請によmergesort.

Mergesort検討に値の場合速度は、最悪の場合の性能は決して容認できない、余分のスペースが可能です。1

まれていないことを確認して下さいねO(nlogn)[...]".これは間違っています。"Quicksortをn^2/2期比較最悪の場合には、"1.

しかし最も重要な財産であり、私の経験は、簡単に連続アクセスできなソートをプログラミング言語のなパラダイム

1 Sedgewick、アルゴリズム

Quicksortは最速のソートアルゴリズムの実践が多数の病理する場合することができるよう、そして悪O(n2).

Heapsortがでの動作保障はO(n-ln(n))を必要とは限を追加す。が多く引用実世界を試験するheapsortが大幅に遅quicksort。

Wikipediaの説明:

通常、quicksortが大幅に早くなっており練習のよΘ(nlogn)アルゴリズムが内側ループで効率的に実施し大部分のアーキテクチャでは、ほとんど実世界データを作ることが可能デザインの選択肢を最小にする確率を必要と二次ます。

Quicksort

Mergesort

さんいらっしゃるかと思いまの課題をストレージ容量の必要なMergesort(Ω(n))とquicksortの実装についてお答えください。最悪の場合には、同量のアルゴリズムがmergesortする必要がある。

Quicksortないよmergesort.O(n^2)(最悪の場合は、このようなごく稀に起こる),quicksortる可能性があるかにより遅くなるO(nlogn)の合併に並べ替えができます。Quicksortの少ないオーバーヘッドで小さなnが遅いコンピュータであります。がコンピュータで高速に追加のオーバーヘッド、mergesortは軽微であり、リスクは非常に時間がかかるquicksortれに比して著しくは軽微であり架のmergesortことが多いです。

また、mergesort葉項目と同一のキーを確性と客観性を保証するために、有の属性。

付け加えたいと思い、既存のもの回答の一部数学かQuickSortを行う場拡大からの最高の場合はどうで、私があまり聞きとれないより良い理由にはO(n^2)の場合ではないの関心をより高度な実装のQuickSort.

外側のランダムアクセスの問題が要因と影響のQuickSort、両方とも関連するどのように、ピボットを比較し、データの全部エクスペディアで。

1)少人数のキーのデータです。データセットのすべて同じ値をソートしますn^2時間、バニラの2分割QuickSortですべての値を除き、ピボットの位置を設置片側ます。現代の実装アドレスこの方法により使用するなど、3分割並べ替えができます。これらの方法を実行するデータセットの値と同じO(n)時間。うな実装となっているのは入力少数のキーの実際のパフォーマンス向上を図りとな関心事となっています。

2)極めて悪く、ピボットの選択の原因となり最悪の場合。理想的な場合は、ピボットでは常になることに50%のデータが小さく、50%のデータが大きくなるように入力する、半分に割れた時の各なります。このことは、nの比較およびスワップ回ログイン2(n)recursionsのためのO(n*logn)。

どうして非理想的なピボットの選択に影響の実行時間がかかる?

考えてみましょう場合は、ピボットは一貫して選ばれたように75%のデータは片側の進する。でもO(n*logn)が現在のベースログの変更1/0.75 1.33.の関係性が変化するベースは常に一定に代表されるlog(2)/log(newBase).この場合、この定数は2.4.この品質のピボットの選択肢か2.4倍に理想的です。

うこくか

ない非常に高速で、ピボットの選択肢が(続)が非常に悪い:

  • 50%は片側:(例)
  • 75%が片側:2.4倍長
  • 90%の一側面:6.6倍長
  • 95%の片側:13.5倍長
  • 99%は片側:69倍長

アクセスして100%の片側のログの一部を実行方法nの実行漸近的方法にはO(n^2).

にナイーブの実施QuickSort、ケースなどのソート、またはソートされた配列(1素子ピボット)を逆順にソートアレイのための最後の要素のピボット)を確実に生最悪の場合O(n^2)を実行す。また、実装予測可能なピボットを選択することができ受DoS攻撃によるデータを生するために設計された最悪の場合実行します。現代の実装を避けることにより様々な方法などのランダマイズ処理を施し前のデータを並べ替えを選択し中央値の3つの無作為で抽出された指数。このランダム化をミックスには、2つの例:

  • 小さなデータセットです。最悪の場合には合理的には可能だが、O(n^2)は壊滅的であるn^2にも小さい。
  • 大規模データセットです。最悪の場合はできる理論がない。

かれていま見てひどい実績を教えてください。

のチャンス vanishingly小.考えてみましょうような5,000値:

当社の仮想的な実装をお選びピボットを用い中央値の3つの無作為で抽出された。またピボットを25%-75%レンジする"良い"とピボットの0%-25%75%から100%の範囲できます見れば、確率分布の中央値の3つのランダム指数は、再帰って11/16の予想と進する。ようではありませんか2保守的(ときはfalse)の仮定を簡素化し算引き算など余計な計算は:

  1. 良いピボットも同時25%/75%の分割および動作2.4*最適です。ませんの最適な分割又は分割により25/75.

  2. 悪ピボットを常に最悪の場合、基本的に貢献しなソリューションとなります。

当社のQuickSort実行停止では、n=10とスイッチを挿入ソートしを要求22 25%/75%のピボットの間仕切り、5,000値入力る。(10*1.333333^22>5000)やって異なりますが、共通して4990最悪の場合にはピボット.この場合において22の良いピボットで の任意の点 その後、完全、最悪の場合も近くで 非常に 悪い。また88recursions実際に達成22良いピボットに必要なソダn=10は、どちらかというと4*2.4*最適の場合は約10倍の実行時間の最適。いかがでし ない の達成に必要22良いピボット後88recursions?

二項の確率分布 で答えると、答えは約10^-18.(nは88、kは21,pは0.6875)ユーザーは約千代表する落雷の1秒でクリックし[う"ようこ5,000項目の並べ替え走行 を悪化させない 10*最適です。このチャンスを取得し、データセットが大きくなります。ここでは配列のサイズと対応するチャンスを走る以上10*:

  • 配列の640項目:10^-13(15良いピボットポイント60み)
  • 配列につき5,000項目:10^-18(22良いピボット88のみ)
  • 配列の40,000:10^-23(29良いピボットの116)

これはあくまでも2保守的な前提となるのではないかとの実現しました。うにしたがって、実際の業績はしみいただけるよう、バランスの残存確率に近い理想以上にいません。

最後に、その他先ほども少し触れましたが、でもこれらのabsurdlyく場合に除去することができる。への取替えによるヒープソートの場合はスタックの再帰うも深い。そのTLDRは、良い実装のQuickSort最悪の場合 はありません 良かったらポチっとしてください工学的、実行が完了O(n*logn)。

その答えが少傾向quicksortれました。r.tを変更したDualPivotQuickSortのためのプリミティブ値です。に使用される JAVA7 並べ替える java.util.配列

It is proved that for the Dual-Pivot Quicksort the average number of
comparisons is 2*n*ln(n), the average number of swaps is 0.8*n*ln(n),
whereas classical Quicksort algorithm has 2*n*ln(n) and 1*n*ln(n)
respectively. Full mathematical proof see in attached proof.txt
and proof_add.txt files. Theoretical results are also confirmed
by experimental counting of the operations.

きJAVA7implmentationこちら http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/util/Arrays.java

さらに凄みんDualPivotQuickSort- http://permalink.gmane.org/gmane.comp.java.openjdk.core-libs.devel/2628

マージソートのアルゴリズムは:

  1. 並べ替えるには、左サブ配列
  2. 並べ替えるには、右側のサブ配列
  3. 合併の2サブアレイ

トップレベルの統合の2サブ配列に対応すNます。

一つのレベルを下回ること、繰り返し処理のステップ3を取り扱N/2要素もこのプロセスを繰り返します。まだ取り扱2*N/2==Nます。

一つのレベル以下にする、統合4*N/4==N要素です。毎深さを再帰的スタックを融合と同じ数の要素があり、全ての求める。

を考慮するクイックソートアルゴリズムの代わり:

  1. ピピボットのpoint
  2. 場所は、ピボットポイントの正しい場所に配列すべての小さめの要素は左に、より大きな要素は右
  3. 並べ替えるには、左の部分配列
  4. 並べ替えるには、右の部分配列

トップレベルだけを扱う配列のサイズN.すそしてその一つの回転軸、それを正しい位置に、それを無視するというものその他のアルゴリズムです。

一つのレベルを下回ることは、ついに2つのサブ配列としてのN-1(ie"を差し引き前のピボットポイント)きりピボットポイントは各サブ配列であるため、2つの追加のピボットポイント。

一つのレベルを下回ることは、ついに4つのサブ配列との複合サイズN-3と同様の理由で前述のとおりといたしました。

そしてN-7...そしてN-15...そしてN-32...

を再帰的スタックはほぼ同じ(logN).との合併-ソートには、常に対応Nの要素が合併し、各々のレベルを再帰的スタックです。迅速-並べ替えが要素の数だ対応が減少していくと、下のスタックです。例えば、深度の途中からの再帰的スタックの要素の数だけ対応するN-2^((logN)/2))==N-sqrt(N)

免責事項:に統合ソート、だけを使用した2度のチャンクは、リカーシブの深さがうlogN.速-並べ替え、あなたのピボットの点はちょうどその中の配列を再帰的スタックですよlogN.俺算引き算など余計な計算はど大きな役割をこの要因との要因は、上記実際のアルゴリズムの複雑になります。

とは異なり合うクイックソートしないを使用してauxilaryます。が合併に並べ替えを使用してauxilaryスペースO(n)が合併しうる最悪の場合の時間計算量O(nlognは最悪の場合の複雑性クイックソートはO(n^2)をする場合に起こる配列は既に全部エクスペディアで。

ないものの複雑性クラスなものを行います。Quicksortは、通常よりも早くmergesortでやコートを実施するためには、なくなります。これがquicksortは一般的に高速化する人なのmergesort.

だがしかし!個人的にもしばしば利用mergesortやquicksort variantが低下すmergesortがquicksortなが低調に推移しました。覚えておいてください。QuicksortはO(n log n) 平均.この最悪の場合O(n^2)!MergesortはO(n log n).場合にリアルタイム性が求められた応答性で、入力データがら、悪意のあるソース、 ご利用するべきではありません平野quicksort.

Quicksortよりも高い平均場合には複雑なものの一部のアプリケーションで間違えています。Quicksortでは、脆弱性問題に適切に対処サービス妨害攻撃であった。場合、攻撃者が選択でき、入力にソートされ、簡単に構築の設定としており、最悪の場合の時間計算量o(n^2).

Mergesortの平均ケースの複雑さは最悪のケースの複雑さはみな同じであり、どんな同じ問題です。この物件の合併-並べ替えることもできる優れた実時間システムだからこそありません病態の場合の原因となるので走らせられたのがきっかけとなっているのです。

私は大きなファンのMergesortついているのQuicksortために、これらの理由

なぜQuicksortがいい?

  • QuickSort間はN^2最悪の場合には、NlogN平均。最悪の場合発生時データは全部エクスペディアで。この影響を和らげることができるランダムシャッフル前の仕分けを開始します。
  • QuickSortなレベルでの記憶えることができるとの合併による並べ替えができます。
  • 場合、データセットが大きいが同一の項目は複雑Quicksort削減による3方法がありました。より、同一の項目の並べ替えができます。すべての項目と同一、ある種の線形時間。[このデフォルト実装はほとんどの図書館]

はQuicksort常によMergesort?

をしなければいけません。

  • Mergesortは安定してQuicksortいません。いが必要な場合は安定で出力を使うのMergesort.安定性を要求される多くの応用分野について述べる。
  • メモリを格安にしています。その場合のメモリを使用Mergesortする必要はありませんのご応募ありません害用Mergesort.

注意: Javaでは、Arrays.sort()関数を使Quicksortのためのプリミティブデータの種類とMergesortのためのオブジェクトデータです。でオブジェを消費メモリのオーバーヘッドで追加は少し台のMergesortな問題のための性能。

参考:のQuickSort映像 週3、プリンストンのアルゴリズムコースCoursera

クイックソートは最悪の場合O(n^2)しかし、平均ケースを一貫して行行の合併に並べ替えができます。各アルゴリズムはO(nlogn)する必要があり覚えているとの話をきいオフの下の複雑さい。クイックソートが大幅に向上マージソす定数。

ソもO(2n)メモリー、クイックソートできます(必要としないたO(n)).これは他の理由によるクイックソートは一般的に好の合併に並べ替えができます。

追加情報:

最悪の場合のクイックソートしたときに起こる現象のピボットは十分ではないを選択します。次の例を考えてみてください:

[5, 4, 3, 2, 1]

場合は、ピボットはここをクリックして下さい最小又は最大人数のグループしてクイックソートしますO(n^2).その確率を選択する要素の最大または最小の25%のリストには±0.5℃です。このアルゴリズム0.5のチャンスとして進する。を用いれば、典型的なピボットを選択アルゴリズム(言をお選びランダムな要素により、0.5のチャンスをお選びいピボットのためのすべての選択肢の進する。コレクションのベーシックプランの大きなサイズの確率は必ず選択貧しいピボットは、0.5*n.この確率でクイックソートは効率の平均および典型値)。

このかわいらしい古いデリケートな問題がからんの対応も最近、この滞在を通して、私は2c:

マージソーズの平均~N log Nに比較.たてどのようにソート順にソート配列にはこのが1/2N log Nめながら統合してどのように常に選択"の左"の部分1/2Nの時代ださいcopy right1/2Nます。また、できると推測されてい順にソートを入力するプロセッサーの支店予測の輝きが推測をほぼ全店舗に正しく与えるため、パイプラインの示する

クイックソートの平均要~1.38N log Nに比較.ませんから大きな利益を得ていソート列の比較(しかしな利スワップ取引及びその支店予測内CPU).

私のベンチマークにかなり近代的プロセッサは以下の通:

が比較機能はコールバック関数のようにqsort()libc実施quicksortより遅mergesortにより15%のランダム入力30%がすでにソート配列または64ビット整数です。

一方の場合との比較ではないのコールバックに、私の経験はquicksort能mergesortを最大25%程度となっている。

しかし場(大型)の配列は非常に少数の独自の価値観、マージソ始まりと過quicksortます。

なかには:の場合との比較では高価などコールバック関数を比較する文字列を比較する数多くの部品構造には主に第二-第三る"場"への特段の記載がない限りのもとにまとの合併に並べ替えができます。のための簡単な作業quicksortになります。

とはいえ全ての従いると言われているtrue:-QuicksortできるN^2がSedgewickると良い無作為化実施によりチャンスをコンピュータのソートを行うが、落雷によっN^2 -Mergesortが必要で余分のスペース

私が実験の両方でソートアルゴリズムによる計数の再帰呼び出し、 quicksort常に少ない再帰呼び出しによmergesort.でquicksortは、ピボット、ピボットを含まない、次再帰的に発信します。そのようにquicksortで再帰的基盤の場合よりも迅速にmergesort.

すべてのものがいいでほとんどの人が使うも便利にご利用ことになる傾向にあるqsort(3).その他quicksortと呼ばれる非常に高速な配列のように、mergesortの選択肢のリストが表示されます。

どっかで見かけ 基数 またはバケットを並べ替えができます。彼らはO(n)時間で、少なくともリンクリストでは一部に変換する方法を、通常の番号です。(文字列、山仕事です。)

おうと思っていた理由はどうコンピュータ科学の授業を行っています。ったものを私の講師のアルゴリズム解析である事が判明したのでうよりも早くO(n log(n)).ネットワーク作りのたることの証できません 比較 何よりも速くO(n log(n))である。)

その他のニュース、浮き整理整数としても、負の数ます。

編集:実際に、"わらびもち"をここでも悪質なソートのfloatとしての整数 http://www.stereopsis.com/radix.html.このビット反転トリック使用できるの如何にかかわらずソートアルゴリズムを実際に使用---

この言うまでもない。最悪のMergeSort n(log2n)-n+1日で確定されたequals2^kしてくれてありがとうございますでも証明されています。やまもと(n lg n-n+1)(n lg n+n+O(lg n)).がquickSort、そのベストはnlog2n(n=2^k)場合分けMergesortによるquickSortでequalsの場合nは無限大です。そうだと最悪の場合のMergeSortより最高の場合のQuickSortのはなぜ使用していまquicksort?っMergeSortがない可能性がありますので、必要と2n memeroyます。とMergeSortも必要な多くの配列にコピーしないなどの解析アルゴリズムです。このように、MergeSortはfaseterよquicksortにtheroyが、現実を考慮する必要がありmemeoryスペースの配列のコピー、合併により遅い速並べ替えができます。私は、一旦実験を付与しました1000000桁javaによるランダムクラスで2610msによるmergesort,1370msによるquicksort.

小追加速vs合併ひとつに違いありません。

また、すでにこの時点での仕分けます。アクセスすれば、スワップとの比較は簡単な操作、比較中の整数の平面メモリー、その後の合併に並べ替えできる好ましいアルゴリズムです。

例えば、並べ替えを使用したネットワークプロトコルリモートサーバーです。

また、カスタム容器のように"リンクリスト"にはない利益の並べ替えができます。
1.合併に関して、リンクリストなの追加が必要となる。2.アクセス元素のクイックソートしないシーケンシャル(メモリ)

クイックソートすることができますので場所を選別アルゴリズムの良さに適した配列.統合う一方の特別な保管にはO(N)、および最適のリンクのリストが表示されます。

とは異なり配列にリストが好きでした挿入が可能で項目につO(1)領域O(1)時間でのmerge操作マージソートが実施できなく余分なスペース。しかし、配置、配置スペースが配列に悪影響を及ぼす恐れの時間の合併に並べ替えができます。ソも恩リンクリストとしてデータにアクセス順次なランダムメモリアクセス。

クイックソートの要となるランダムメモリアクセスと配列して直接アクセスメモリーのなく横行して必要なリンクのリストが表示されます。またクイックソートの場合、配列が互いの地域の参考として配列が連続して格納される。

もののソートアルゴリズムの複雑さの平均はO(NlogN)、普通の人のための通常のタスクを使用して配列に保管し、そのためにクイックソートのアルゴリズムの選択です。

編集:私たソ最悪/最高/平均の場合は常にnlognが、クイックソートによって異なる場合があn2(最悪の場合の要素は既にソート)nlogn平均/最大きピボットを常に分離し、配列すべての人を対象とした全品半額).

考える時間と空間の複雑さです。のための統合ソート:時間の複雑さ:O(nlogn), スペースの複雑さ:O(nlogn)

早く並べ替え:時間の複雑さ:O(n^2), スペースの複雑さ:O(n)

このwinを一scenerioいます。でも、ランダムピボットまでほとんど常に時間の短縮を実現し複雑化したソO(nlogn).

このように、クイックソートは優先は多くのアプリケーションの開発ではなく合併に並べ替えができます。

C/c++地を使用しない場合はstl容器を使うのquicksortのでは の実行時間がmergesortいません。

ると考え、多くの場合、それは単に経路の少なくとも。

またパフォーマンスがより迅速に、場合についての全体のデータセットなのセットです。

た理由の一つは、より哲学的な.Quicksortはトップ>ダの理念です。Nの要素を並べ替えが!可能です。2割のm&n-m相互に専用の可能性が下が複数います。m!*(n-m)!より分かり!ます。想像5!vs3!*2!.5!10倍の可能性により2割2-3です。族1百万円を要因vs900K!*100K!対なので心配の確立を任意の順番範囲はパーティションで確立で幅広いレベルのパーティションと削減の可能性内にありました。任意の順番で設立以前の範囲における乱れば、後での間仕切り身は相互排他的なものではない。

他のボトムアップの順にアプローチのような統合ソートやヒープソートのような労働者や従業員のアプローチが始まりとの比較顕微鏡レベルです。この順番で結合として失われてしまうという次の要素が見つかります。これらのアプローチは非常に安定した非常に予測可能で一定の追加。

クイックソートのような経営学的アプローチは当初の懸念を任意の順番について教えてくださの会議での幅広い基準ずる。その後のパーティションが縮小までソートされたセットです。現実の課題にQuicksortはこのパーティションの基準の暗が分かっている場合は、何もする要素の並べ替えができます。そのいずれかが必要かディスカッションを通し中央値は1にランダム又は恣意的な"経営の展開に注力してまいります。見にぴっ中央値では大量の労力とへの愚かなボトムアップによるアプローチです。でQuicksortというだけでは持ち直しをランダムにピボットや希望されることなく、地球のどこかでその中にはいくつかの仕事を探しの中央値3,5のあり方を探りの中央値がないように完璧ない廃棄物は時間を問わず最初に商品を発送致します。このようなものだったりも低下しますがn^2が得られないときには、いくつかの中央値だけを取るチャンスです。そのデータかせとなります。ます。私は同意しますのトップ>ダ論理的なアプローチのquicksort&ここで示されているのでピボットの選択比較で保存前の仕事より回よりも細心の徹底安定したボトム>アップアプローチなどの合併に並べ替えができます。が

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top