【问题标题】:heap tree - complexity to output a sorted list堆树 - 输出排序列表的复杂性
【发布时间】:2012-08-01 12:03:33
【问题描述】:

有一个未排序的数字列表,并从中构建了一个堆树。

从已经构建的堆树中输出一个排序好的数字列表的时间复杂度是多少?

(注意:不需要从树中移除节点来获取当前的最小值/最大值,寻找一种有效的方法来遍历堆树并输出排序后的数字列表)

【问题讨论】:

标签: algorithm data-structures heapsort


【解决方案1】:

与最初对列表进行排序相同 - O(nlogn)。这是因为堆积列表需要 O(n) 时间,并且不可能比 O(nlogn) 更快地从堆中打印排序序列,因为这意味着可以比 O(nlogn) 更快地对任何序列进行排序(通过heapifying 然后输出),证明是错误的。

【讨论】:

  • 虽然这只是设定了一个下限,但我不明白为什么它被否决了。 +1。
【解决方案2】:

这是Print a tree in sorted order using heap properties (Cormen) 的重复问题。原始问题中提供了一个说明,说明为什么它是nlogn 操作而不是logn

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    相关资源
    最近更新 更多