堆的应用之堆排序
来源:互联网 发布:设计淘宝店招 编辑:程序博客网 时间:2024/06/07 03:18
void AdjustDown1(int* b, int n, int i) //向下调整,建立大堆 { int parent = i; int child = parent * 2 + 1; while (child < n) { if (child + 1 < n&&b[child + 1] > b[child]) { ++child; } if (b[child]>b[parent]) { swap(b[child], b[parent]); parent = child; child = parent * 2 + 1; } else { break; } } } int b[] = { 10, 11, 1, 2, 3, 85, 96, 4, 23, 52 }; void SortHeap(int* b, size_t n)//堆排序 升序 --》建立大堆 { for (int i = (n - 2) >> 2; i >= 0; --i)//建堆 { AdjustDown1(b, n, i); } int end = n - 1; //end 为最后一个数的下标 while (end) //不断的取堆顶最大的数放到后面,--end,调整堆。 { swap(b[0], b[end]); AdjustDown1(b, end,0); --end; } for (int i = 0; i < n; ++i) { cout << b[i] << " "; } cout << endl;
阅读全文
0 0
- 堆的应用之堆排序
- 堆排序的应用
- 算法导论读后感-之堆,堆排序,堆排序的应用
- 堆和堆的应用:堆排序和优先队列
- 堆、堆排序及其应用
- 堆排序算法二(堆排序算法的应用)
- 堆排序的应用之优先级队列的实现
- 堆排序应用之优先队列的实现
- 堆排序之最小堆
- 大小堆之堆排序
- 堆的应用(优先级队列、海量数据处理、堆排序)
- 堆的应用----TopK问题和堆排序
- 堆的应用:topk问题以及堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 646. Maximum Length of Pair Chain
- 阿里云clouder认证—使用Quick BI 制作企业数据分析报表(基础理论篇)
- Mac添加环境变量,解决command not found
- 数组排序及数组做函数参数将会退化为指针
- 在Windows下为PHP5.6安装redis扩展和memcached扩展
- 堆的应用之堆排序
- log4j最简单的配置,可打印SQL到控制台
- 事件流(含冒泡, 捕获,事件委托等)
- iOS学习笔记-115.多线程14——NSOperationQueue和NSBlockOperation合用实现多线程
- 企业级的使用链表
- 手风琴相册
- Unity3D
- 微信公众号开发(四)自定义菜单
- bzoj 1821: [JSOI2010]Group 部落划分 Group Kruskal