7

私は答えを得る前にこの質問が閉じられる危険を冒していますが、私は本当に答えを知りたいです。だからここに行きます。


私は現在、アルゴリズムを学ぼうとしています。それ自体は理解し始めていますが、関連することはできません。

時間計算量空間計算量を理解しています。擬似コードに基づくいくつかの並べ替えアルゴリズムも理解しています

次のような並べ替えアルゴリズム

  1. バブルソート
  2. 挿入ソート
  3. 選択ソート
  4. クイックソート
  5. マージソート
  6. ヒープソート(いくらか)

また、ベストケースワーストケースのシナリオも認識しています(平均的なケースはそれほど多くありません)。


いくつかのオンライン関連参照

  • 上記のすべてをグラフィカルに表示する素敵な場所。
  • これも私に良い理解を与えてくれました。

しかし、私の質問は-これらのソートアルゴリズムが実装されている実際の世界の例を誰かに教えてもらえますか?

4

2 に答える 2

8

要素の数が増えるにつれて、より洗練された並べ替えアルゴリズムを使用するようになります。後の並べ替え手法では初期オーバーヘッドが高くなるため、そのコストを正当化するには、並べ替えに多くの要素が必要になります。要素が 10 個しかない場合、バブル ソートまたは挿入ソートは、マージ ソートまたはヒープソートよりもはるかに高速です。

テレビのリモコンや携帯電話などの小型の組み込みデバイスでは、スペースの複雑さを考慮することが重要です。これらのデバイスでヒープソートなどを行うには十分なスペースがありません。

データベースは、外部マージ ソートを使用して、メモリに完全にロードするには大きすぎるデータ セットをソートします。この種の推進要因は、ディスク I/O 数の減少です。

良いバブル ソートの議論です。時間と空間の複雑さに寄与する考慮すべき要素は他にもたくさんあります。

Sorting-Algorithms.com

于 2012-06-13T20:33:52.867 に答える
0

One example is C++ STL sort

as the wikipedia page says:

The GNU Standard C++ library, for example, uses a hybrid sorting algorithm: introsort is performed first, to a maximum depth given by 2×log2 n, where n is the number of elements, followed by an insertion sort on the result.1 Whatever the implementation, the complexity should be O(n log n) comparisons on the average.[2]

于 2012-06-13T20:29:45.817 に答える