堆排完是什么样
运行下面这段程序:
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
def hsort(a):
h = list(a)
n = len(h)
for i in range(n // 2 - 1, -1, -1):
sift_down(h, i, n)
for end in range(n - 1, 0, -1):
h[0], h[end] = h[end], h[0]
sift_down(h, 0, end)
return h
print("/".join(str(x) for x in hsort([17, 24, 15, 13, 23])))
全部评论