2008-09-16 33 views

答えて

0

ほとんどの開発ライブラリにはクイックソートアルゴリズムが実装されています。クイックソートアルゴリズムは、しばしば最速のソートアルゴリズムです。 Wikipedia link hereをチェックしてください。

1

ターゲット言語は指定しませんが、それは何であれ、信頼できる組み込みソート方法を持つ必要がありますので、そのうちの1つを使用してください。 PHPの場合...

配列にロードし、sort($ array);

php sort ...

$fruits = array("lemon", "orange", "banana", "apple"); 
sort($fruits); 

foreach ($fruits as $key => $val) 
{ 
    echo "fruits[" . $key . "] = " . $val . "\n"; 
} 

出力:

fruits[0] = apple 
fruits[1] = banana 
fruits[2] = lemon 
fruits[3] = orange 
1

Bubble sort!ちょうど冗談です:)

おそらく最も良い賭けはquicksortまたはmergesortでしょう。バブルソートのO(N^2)とは対照的に

両方は、O(nlogn)である

0

C位において、一覧)(.Sortを有しています。一般クイックソートに

は、多くの状況で非常に高速ですが、それは常に、配列のサイズに依存し、ここで

は、あなたの質問への答えはあなたの避難所「いくつかの詳細に密接に関連しているlink

1

です提供される。 「最高/最速」の方法は、フィールドの長さ、ソートする必要のある数、使用可能なメモリの量、ディスクとメモリの相対速度、文字列の詳細などによって決まります。広告騒乱

Knuth第3巻は、さまざまなアプローチに関する詳細を示しています。私は彼が基数ソートについて議論しているのを思い出しませんが、おそらく彼はそうしています。彼がしなければ、基数ソートに関するいくつかの参考文献を調べるべきです。狭い環境下でのみ有効ですが、積極的に飛んでいます。小さな文字列があれば、Bubble Sortは、オーバーヘッドが低いため、複雑なソートよりも優れたパフォーマンスを発揮します。 Cランタイムライブラリには、Quick Sortのバージョンが含まれています。これは、状況によっては大規模なデータセットに対して非常に効率的なアルゴリズムとなるためです。

ネットネットでは、「それは依存しています」です。

1

「最善」の方法は、多くの要因に依存します。

  1. あなたは言語以上をサポートする必要がありますか?
  2. 複数の言語を同時にサポートする必要がありますか?
  3. 現在のオペレーティングシステムまたはユーザー言語以外の言語をサポートする必要がありますか? (例、Webアプリケーション)
  4. 複数のエンコーディングをサポートする必要がありますか? (unicode、utf-16le/utf-8、ansiコードページなど)
  5. 長いまたは高度に冗長な入力をサポートする必要がありますか?(事前計算または圧縮がソート操作を高速化する可能性があります)
  6. 多くの入力をサポートする必要がありますか?
関連する問題