据我所知,我的大学已经证明,对随机数据进行排序的基于比较的算法的下界是Ω(nlogn)。我也知道Heapsort和Quicksort的平均情况是O(nlgn)。运行合并排序和快速排序的线性时间
因此,我试图绘制这些算法对一组随机数据进行排序所需的时间。
我使用了发布在Roseta Code的算法:quicksort和heapsort。当我试图绘制时间每一个排序随机数据,多达1万个号码需要,我似乎是线性以下图表:
您还可以找到结果我从运行从here heapsort得到。 此外,您还可以找到我从运行快速排序得到了here
然而调查结果,我得到为O(n^2)的时间复杂度运行冒泡时,如下面的图中显示:
为什么这是?我可能会在这里错过什么?
秤..... N个大小为太小? –
@MitchWheat。非常感谢您的评论。但是,N高达100万...我是否必须使用更大的N? –
在你的比较函数中睡一觉,看看会发生什么? – nishantjr