堆排序算法_2011_10_10
2011-10-10 15:09
302 查看
//堆排序 voidadjustHeap(int R[], inti, int m) { int nTemp = R[i]; int j= (2 * i) + 1;//即使是根节点,那么左孩子的的序号为i+ 1,右孩子的序号为i + 2,这样就可以让r[0]也加入进来 while (j <= m) { if ((j< m)&& (R[j] < R[j + 1])) { j++; } if (nTemp < R[j]) { R[i] = R[j]; i = j;// j = (2 * i) + 1;//这里之所以要这么赋值是因为,当你根结点和子结点交换元素以后,那么子树可能就不是大根堆或者小根堆了, //那么你就要跑回去检查看是否依然是大(小)根堆 } else { break; } R[i] = nTemp; } } voidheapSort(int r[],intn) { int nTemp = 0; //之所以是n/2 – 1是因为不要浪费r[0]这个空间 for (inti = (n / 2) - 1; i >= 0; i--) { adjustHeap(r, i, n - 1); } for (inti = n - 1; i >= 0; i--) { nTemp = r[0]; r[0] = r[i]; r[i] = nTemp; adjustHeap(r, 0, i - 1); } }
相关文章推荐
- 2011Java高职竞赛样题9,10,11
- Dynamics CRM 2011 编程系列(10):JS编程之构造OData查询字符串
- MS CRM 2011的自定义和开发(10)——CRM web服务介绍(第一部分)——IDiscoveryService
- 洛谷 P1949 聪明的打字员 [NOI导刊2011提高(10)] (bfs+剪枝)
- java基础复习1(2011 06 10)
- Dynamics CRM 2011,Office 2013,Windows 8,IE 10 的兼容问题
- 二、uboot的配置过程分析 (2011-03-10 19:41)
- 2011-10-11 1:11:14
- 2010-2011 ACM-ICPC Northeastern European Regional Contest (NEERC 10) G - Game of 10
- [luoguP1947] 笨笨当粉刷匠_NOI导刊2011提高(10)(DP)
- Feb 2, 2011, Wendnesday, 10
- 套题:2011成都赛区区域赛 (5/10)
- A trip through the graphics pipeline 2011 Part 10(翻译)
- hdu 3938 Portal(并查集+离线+kruskal)2011 Multi-University Training Contest 10
- 2011-06-10 shell脚本学习
- C#远程开机代码 【局域网测试通过】 分类: .NET 2011-10-26 11:45 2415人阅读 评论(1) 收藏
- 2011 10 27 ARM C+汇编
- 2011 10 31
- MS CRM 2011的自定义和开发(10)——CRM web服务介绍(第二部分)——IOrganizationService(四)
- A trip through the Graphics Pipeline 2011_10_Geometry Shaders