6.3-2
func(A)
1 A.heap-size=A.len
2
\quad
for i=
⌊
A
.
l
e
n
2
⌋
\lfloor {A.len\over2}\rfloor
⌊2A.len⌋ downto 1
3
\qquad
MAX-HEAPIFY(A,i)
对于第2行的循环控制变量i来说,为啥要求它是从
⌊
A
.
l
e
n
2
⌋
\lfloor {A.len\over2}\rfloor
⌊2A.len⌋到1递减,而不是从1到
⌊
A
.
l
e
n
2
⌋
\lfloor {A.len\over2}\rfloor
⌊2A.len⌋递增呢?
这样就不被允许执行第三行了
6.3-3 证明:包含n个元素的堆中,至多有
⌈
n
2
h
+
1
⌉
\lceil{n\over2^{h+1}}\rceil
⌈2h+1n⌉个高度为h的结点
h=0时,结点数为n-
⌊
n
2
⌋
\lfloor{n\over2}\rfloor
⌊2n⌋=
⌈
n
2
⌉
\lceil{n\over2}\rceil
⌈2n⌉,满足
假设高度为h-1时成立,
算法导论第6章思考题
最新推荐文章于 2025-05-02 13:41:05 发布