堆排序算法分析(c语言版)

上传人:kms****20 文档编号:37836291 上传时间:2018-04-23 格式:DOC 页数:5 大小:156KB
返回 下载 相关 举报
堆排序算法分析(c语言版)_第1页
第1页 / 共5页
堆排序算法分析(c语言版)_第2页
第2页 / 共5页
堆排序算法分析(c语言版)_第3页
第3页 / 共5页
堆排序算法分析(c语言版)_第4页
第4页 / 共5页
堆排序算法分析(c语言版)_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《堆排序算法分析(c语言版)》由会员分享,可在线阅读,更多相关《堆排序算法分析(c语言版)(5页珍藏版)》请在金锄头文库上搜索。

堆排序堆排序堆排序是利用堆的性质进行的一种选择排序,下面先讨论一下堆。1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Keyi=Key2i+1void HeapAdjust(int *a,int i,int size) /调整堆 int lchild=2*i; /i 的左孩子节点序号 int rchild=2*i+1; /i 的右孩子节点序号 int max=i; /临时变量 if(iamax)max=lchild; if(rchildamax)max=rchild;if(max!=i)swap(ai,amax);HeapAdjust(a,max,size); /避免调整之后以 max 为父节点的子树不是堆 void BuildHeap(int *a,int size) /建立堆 int i;for(i=size/2;i=1;i-) /非叶节点最大序号值为 size/2 HeapAdjust(a,i,size); void HeapSort(int *a,int size) /堆排序 int i;BuildHeap(a,size);for(i=size;i=1;i-)/cout0)int i;for(i=1;iai;HeapSort(a,size);for(i=1;i=size;i+)coutai“;coutendl;return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号