当前位置:首页|资讯

python算法:堆排序

作者:草木灰P_Tracyzem发布时间:2024-10-15

一:树

树 是一种可以递归定义的数据结构

每个节点向下分n个小节点,可以无限细分:

二:二叉树

每个节点最多往下开辟两个小节点的树叫二叉树。

满二叉树:每一层的节点都到最大值 

完全二叉树:叶节点只出现在最下层和次下层,而且最后的细分层集中在最左侧

三:堆

大根堆:每个节点都比下属的小节点大

小根堆:每个节点都比下属的小节点小

向下调整:假设要排列一个大根堆,从最上层向下比较,如果最上层小于下层数据,和下层最大的数据互换,直到实现大根堆的排列。

小根堆同理,从最上层开始向下比较,选和它有关下层最小的数据调到上层。

四:堆排序原理

建立堆——得到堆顶部元素(最大元素)——去掉顶部 把最后一个元素放到顶部——重新调整——堆顶元素是第二大元素——重复3直到堆变空

构造堆的过程:从底层开始排列,从下到上排列整个过程,直到做完大根堆或者小根堆

五:代码实现

(1)调整数组的函数(能实现“把较小的父节点和子节点中大数互换”):

(2)堆排序例

(3)实操

引入随机生成数 然后开始排序


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1