Python实现堆排序算法的概述
作者:小宇宙叶知秋
时间:2024-11-15
浏览:1
了解堆排序算法的前提是要知道完全二叉树和堆数据结构。堆排序算法是将数组可视化为完全二叉树,因此也被称之为“堆”。堆排序算法原理1、根据最大堆属性,数据组中最大的项存储在根节点2、去掉根元素,放到数组的末尾(第n个位置),把树的最后一项,放到空缺的地方。3、将堆的大小减少1。4、再次堆化根元素5、重复该过程,直到列表中的所有项目都被排序Python实现堆排序算法指定数组arr=11295610defheapify(arr,n,i):largest=il=2*i+1r=2*i+2ifl<nandarr[
本文目录

了解堆排序算法的前提是要知道完全二叉树和堆数据结构。堆排序算法是将数组可视化为完全二叉树,因此也被称之为“堆”。
堆排序算法原理
1、根据最大堆属性,数据组中最大的项存储在根节点
2、去掉根元素,放到数组的末尾(第n个位置),把树的最后一项,放到空缺的地方。
3、将堆的大小减少1。
4、再次堆化根元素
5、重复该过程,直到列表中的所有项目都被排序
Python实现堆排序算法
指定数组arr= 1 12 9 5 6 10
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
heapifying
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):
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 = [1, 12, 9, 5, 6, 10]
heapSort(arr)
n = len(arr)
print("Sorted array is")
for i in range(n):
print("%d " % arr[i], end='')
作者最新文章
Excel单元格内换行教程:Alt+Enter快捷键与自动换行设置
2026-10-30 18:49
3DMax材质贴图浏览器怎么打开
2026-10-29 12:08
blender几何节点功能怎么开启教程界面入口与启用步骤
2026-10-18 13:20
PDF删页删错怎么找回?PDF删页报参数错误怎么办?
2026-10-17 11:21
蚂蚁庄园1月18日:人们常用砸锅来形容事情没办成猜猜最早源于哪个行业
2026-09-24 16:59
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































