2008-09-16 183 views

回答

0

你會發現大多數開發庫附帶一個快速排序算法的實現,它通常是最快的排序算法。檢查出Wikipedia link here

1

你不指定你的目標語言,但不管它是什麼,它應該有可靠的,內置的排序方法,所以使用它們中的一個!對於PHP ...

加載到數組中並進行排序($ 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!只是在開玩笑:)

大概你最好的選擇是quicksortmergesort

兩者都是O(nlogn),而不是冒泡排序的爲O(n^2)

0

在C#,列表有的.sort()。

一般快速排序是非常快的在許多情況下,但它總是依賴數組的大小,

這裏是link

1

的回答你的問題是密切相關的一些細節,你的天堂」提供。 「最佳/最快」的方式取決於字段的長度,你需要排序多少,你有多少可用內存,磁盤和內存的相對速度,字符串內容的細節......,ad nauseam

Knuth Vol 3有各種各樣的方法的細節。我不記得他是否討論過基底排序,但他可能會這樣做。如果他沒有,你應該查找一些基數排序的參考。它只適用於狹隘的情況,但積極飛向那裏。如果你有一小組短字符串,由於較低的開銷,Bubble Sort在某些體系結構上的性能會好於複雜排序。 C運行時庫包含一個快速排序版本,因爲在某些情況下,它可能是一個非常有效的大型數據集算法。

Net-net,答案是「它要看」。

1

「最好」的方式取決於很多因素:

  1. 你需要支持比語言更?
  2. 你需要同時支持多種語言嗎?
  3. 您是否需要支持當前操作系統或用戶語言以外的語言? (例如,web應用程序)
  4. 您是否需要支持多種編碼? (unicode,utf-16le/utf-8,ansi代碼頁等)
  5. 您是否需要支持長時間或高度冗餘的輸入?(預計算或壓縮可能會加快排序操作)
  6. 您是否需要支持大量輸入,例如:million或billion輸入?