Python堆排序算法实例:从入门到精通

更新时间:2024-06-13 分类:网络技术 浏览量:2

什么是堆排序算法

堆排序是一种基于树数据结构的排序算法,它的时间复杂度为O(n log n),在大数据量下表现优异。

Python实现堆排序的代码

以下是一个Python实现的堆排序的代码实例:


def heapify(arr, n, i):
    largest = i
    l = 2 * i + 1
    r = 2 * i + 2

    if l < n and arr[i] < arr[l]:
        largest = l

    if r < n and arr[largest] < arr[r]:
        largest = r

    if largest != i:
        arr[i], arr[largest] = arr[largest], arr[i]
        heapify(arr, n, largest)

def heapSort(arr):
    n = len(arr)

    for i in range(n // 2 - 1, -1, -1):
        heapify(arr, n, i)

    for i in range(n-1, 0, -1):
        arr[i], arr[0] = arr[0], arr[i]
        heapify(arr, i, 0)

arr = [12, 11, 13, 5, 6, 7]
heapSort(arr)
print("排序后的数组:")
for i in arr:
    print(i)

    

如何理解这段代码

这段Python代码中,heapify函数用于构建最大堆,heapSort函数用于对数组进行堆排序。通过不断调用heapify函数,将数组转换为最大堆,再将堆顶元素与末尾元素交换并重新调整堆,最终实现排序。

结语

通过本文的学习,相信你已经对Python实现的堆排序有了更深入的了解。堆排序是一种高效的排序算法,掌握它将为你的编程技能增光添彩。

感谢阅读这篇文章,希望对你有所帮助。