最近無聊,把各種排序演算法在linux下用c實現了,並記錄其執行時間如下:
對10m個無符號隨機整數進行排序,各種演算法的時間如下:
qsort:(c標準庫自帶函式)
real 0m5.901s
user 0m5.548s
sys 0m0.300s
merge_sort:
real 0m5.757s
user 0m5.328s
sys 0m0.396s
heap_sort:
real 0m10.299s
user 0m9.932s
sys 0m0.263s
quick_sort:
real 0m5.399s
user 0m5.059s
sys 0m0.299s
radix_sort:(使用計數排序的基數排序)
real 0m4.383s
user 0m4.007s
sys 0m0.330s
可見,效能最好的當然還是線性的基數排序,
三種o(n*lgn)演算法中,快排是最快的,歸併跟它差不多,但是堆排要慢一倍左右。
選擇、插入、冒泡這三種平方複雜度演算法均跑了幾分鐘都沒有跑完。。。
一億以上資料幾種排序演算法執行時間比較
執行結果如下圖 單位ms insert 只排了8萬及以下資料 heap 參考演算法導論,maxheapify採用迭代取代遞迴 shell 增量遞減序列採用1 2 3k 1 1 2 3 k 1 1 2 3k 1 形式 shell is incerpi sedgewick提出的增量遞減序列 139137...
練習 不同排序演算法執行時間比較
插入 template typename datatype void insert datatype d,int length d i 1 key 插入剛剛的key值 注意是i 1 們將d 0 作為哨兵元素,儲存待排序元素 include include void swap int a,int b ...
flask和django的執行時間比較
flask和django的執行時間比較 flask介面 from flask import flask,request import json defadd args a,b return a b get tasks methods post defget tasks if request.meth...