建堆之后堆顶是几
把 [17, 24, 15, 13, 23] 建成大顶堆。运行下面这段程序:
def sift_down(h, i, n):
while True:
big = i
l = 2 * i + 1
r = 2 * i + 2
if l < n and h[l] > h[big]:
big = l
if r < n and h[r] > h[big]:
big = r
if big == i:
return
h[i], h[big] = h[big], h[i]
i = big
h = [17, 24, 15, 13, 23]
n = len(h)
for i in range(n // 2 - 1, -1, -1):
sift_down(h, i, n)
print(h[0])
全部评论