插入排序/堆排序时间复杂度

时间:2011-05-24 16:40:13

标签: sorting time-complexity heapsort insertion-sort

假设您必须使用n = 1,000,000元素对数组进行排序。如果假设每个基本步骤需要一毫秒,那么插入sort和heapsort大致需要多长时间?


我知道在最坏的情况下插入排序需要n^2步,而在最坏的情况下,heapsort需要n log n步。

因此1,000,000 ^ 2插入排序= 1*10^12毫秒

用于堆排序的

1,000,000 * log(1,000,000)6,000,000毫秒

是正确的吗?

1 个答案:

答案 0 :(得分:3)

嗯...

问题是“订单”符号只是谈论限制和比较,而不是绝对时间。它还会留下常量和低阶项。

例如(这完全是虚构的),您可能正在查看的特定插入排序实现的实际运行时间可能是:

num steps = 45,334 * n^2 + 6,500,000 * n + 2,000,000

这是一个O(n^2)算法,但它比你计算的时间要花费更多的时间。