排序-堆排序-数据结构(32)
来源:互联网 发布:javascript array 编辑:程序博客网 时间:2024/05/21 10:19
一、堆的定义
n[i]<=n[2i] && n[i]<=n[2i+1]。其实堆的概念就是完全二叉树了。i结点的左孩子结点是2i,右孩子是2i+1。
二、解决堆所面临的两个问题
1、//问题一:无序序列建立一个堆
void HeapSort(){//建成了堆 for (int i = length/2; i > 0; --i){//从非终端结点开始筛选HeapAdjust(i,length);}for (int i = length; i>1; --i){//输出堆顶元素 然后进行筛选Swap(1,i);//对剩下的进行筛选HeapAdjust(1,i-1);}}
2、/问题二:如何在输出堆顶元素之后,调整剩余元素成为一个新的堆
void HeapAdjust(int s,int m){int rc = sqTable[s];for (int j= 2*s ; j <= m; j*=2){if (j<m&& sqTable[j]<sqTable[j+1]){j++;//j为儿子中较大的下标}if (rc < sqTable[j]){break;}//往下移动一格sqTable[s] = sqTable[j];s = j;}sqTable[s] = rc;}
阅读全文
0 0
- 排序-堆排序-数据结构(32)
- 数据结构-排序-堆排序
- 数据结构排序之堆排序
- 数据结构经典排序---堆排序
- 数据结构--排序之堆排序
- 数据结构之排序:堆排序
- 数据结构-选择排序-堆排序
- 堆排序--数据结构排序1
- 数据结构--堆排序
- 【数据结构】堆排序
- 数据结构_堆排序
- 数据结构 - 堆排序
- 数据结构--堆排序
- C++数据结构--堆排序
- 数据结构之堆排序
- 数据结构之堆排序
- 【数据结构&&算法】堆排序
- 【数据结构】堆排序
- Android 按home键重新创建Activity的问题
- java 异常中的throws关键字
- 第十届省赛-H-Intelligent Parking Building
- ioctl函数
- c语言实现url的编码和解码
- 排序-堆排序-数据结构(32)
- 交叉验证 cross_validation
- 动态链表与静态链表
- CSS的包裹性
- 新闻客户端
- 关于ajaxForm 和ckeditor连用可是提交的时候不能够获得ckeditor填写的内容的问题
- mui中如何同时监听多个相同的标签
- HDU 1559 最大子矩阵和 (dp) 枚举+dp
- Python学习资源汇总