堆排完是什么样

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

运行下面这段程序:

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])))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论