在堆排序分析中,我们知道执行堆排序的方法之一分为两个阶段。
假设有N
个元素。对于阶段1,比较的数量为2N
,对于一次删除,比较的数量为2lgN
,因此对于N个删除,它是2NlgN
比较。所以比较的总数是2N + 2NlgN
。
这是我的理解。我正在阅读的书是Wesis的算法分析,其中说:
在第二阶段,i
deletemax
最多使用2(floor(log i))
次比较,总共最多2NlogN - O(N)
次比较(假设为N >= 2
) 。因此,在最坏的情况下,堆排序最多只有2NlogN - O(n)
个比较。
我的问题是
作者如何得出结论,在第二阶段,i
deletemax
最多使用2(floor(logi))
次比较?
作者如何提出总计2NlogN - O(N)
?