據我所知,我的大學已經證明,對隨機數據進行排序的基於比較的算法的下界是Ω(nlogn)。我也知道Heapsort和Quicksort的平均情況是O(nlgn)。運行合併排序和快速排序的線性時間
因此,我試圖繪製這些算法對一組隨機數據進行排序所需的時間。
我使用了發佈在Roseta Code的算法:quicksort和heapsort。當我試圖繪製時間每一個排序隨機數據,多達1萬個號碼需要,我似乎是線性以下圖表:
您還可以找到結果我從運行從here heapsort得到。 此外,您還可以找到我從運行快速排序得到了here
然而調查結果,我得到爲O(n^2)的時間複雜度運行冒泡時,如下面的圖中顯示:
爲什麼這是?我可能會在這裏錯過什麼?
秤..... N個大小爲太小? –
@MitchWheat。非常感謝您的評論。但是,N高達100萬...我是否必須使用更大的N? –
在你的比較函數中睡一覺,看看會發生什麼? – nishantjr