堆排序浅学
堆排是选择排序的一种,也就是首先选择一个值最大或最小的元素加到有序序列,
先了解一个堆这个结构:
如果拍好序列,逻辑视角就是顺序存储的完全二叉树,(大根)满足根结点的值大于左右结点的值
对所有的非终端节点(非叶子结点)进行处理(从数组最右端也就是逻辑结构的树的最下面的非终端结点(从上到下)处理)上代码
void HeadAjust(int a[],int k,int n){
a[0]=a[k]; //存起来此非叶子结点
for(int
原创
2021-10-28 23:11:11 ·
92 阅读 ·
0 评论