[C#] 排序演算法效能比較

  • 2521
  • 0
  • 2012-04-13

摘要:[C#] 排序演算法效能比較

數列長度65000筆隨機(0-999)數字陣列

O(NxN) 真的很慢

氣泡排序由於交換次數太多所以最慢

選擇排序時間複雜度與氣泡排序一樣,但交換次數較少

插入排序時間複雜略少於氣泡與選擇排序,略快於選擇排序

 

O(NlogN) 超快

Heap 排序 - Swap次數多所以稍慢

Shell 排序 - Swap次數多所以稍慢,改良數列可以加快速度 直逼快速排序

快速排序 - 快速又簡單的演算法,目前應該沒有更好的演算法

以上不考慮最佳與最差的狀況

Algorithm, ArraySize , Timespan , IterLoop , SwapLoop
BubbleSort , 65000 , 49360 ms , 2112467500 , 1051953069
SelectionSort , 65000 , 18036 ms , 2112467500 , 64899
InsertionSort , 65000 , 13241 ms , 1057646853 , 352548954
HeapSort , 65000 , 63 ms , 1013159 , 980659
ShellSort , 65000 , 52 ms , 2005018 , 1128493
MarcinCiura , 65000 , 39 ms , 1307081 , 670767
QuickSort , 65000 , 38 ms , 3105287 , 151872