← 返回题库
中级

堆排序

未完成
中级参考 代码结构已给出,请填写 ____ 处
def heap_sort(____):
    def heapify(____):
        largest = i
        left = ____ * i + ____
        right = ____ * i + ____
        if left < n and arr[left] > arr[largest]:
            largest = left
        if right < n and arr[right] > arr[largest]:
            largest = right
        if largest != i:
            arr[i], arr[largest] = arr[largest], arr[i]
            heapify(____)
    
    arr = arr.copy()
    n = len(____)
    for i in range(____):
        heapify(____)
    for i in range(____):
        arr[____], arr[i] = arr[i], arr[____]
        heapify(____)
    return arr

示例

输入
print(heap_sort([12, 11, 13, 5, 6, 7]))
期望输出
[5, 6, 7, 11, 12, 13]
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码