【问题标题】:Insertion Sort / Heap Sort time complexity插入排序/堆排序时间复杂度
【发布时间】:2011-09-01 02:41:15
【问题描述】:

假设您必须对包含 n = 1,000,000 元素的数组进行排序。假设每个基本步骤需要一毫秒,插入排序和堆排序大概需要多长时间?


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

所以 1,000,000 ^ 2 插入排序 = 1*10^12 毫秒

和1,000,000 * log(1,000,000) 用于堆排序? 6,000,000 毫秒

对吗?

【问题讨论】:

    标签: sorting time-complexity heapsort insertion-sort


    【解决方案1】:

    嗯……

    问题在于“顺序”表示法只是在谈论限制和比较,而不是绝对时间。它还省略了常量和低阶项。

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

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

    这是一个O(n^2) 算法,但它需要的时间比您计算的要多得多。

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 2013-11-18
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      相关资源
      最近更新 更多