排序算法:推排序
2016-09-12 15:18
204 查看
#include<iostream> using namespace std; void AdjustHeap(int A[], int hLen, int i) { int left = 2*i + 1; int right = 2*i + 2; int largest = i; int temp; while(left < hLen || right < hLen) { if (left < hLen && A[largest] < A[left]) { largest = left; } if (right < hLen && A[largest] < A[right]) { largest = right; } if (i != largest) { temp = A[largest]; A[largest] = A[i]; A[i] = temp; i = largest; left = 2*i + 1; right = 2*i + 2; } else { break; } } } void BuildHeap(int A[], int hLen) { int i; int begin = hLen/2 - 1; for (i = begin; i >= 0; i--) { AdjustHeap(A, hLen, i); } } void HeapSort(int A[], int aLen) { int hLen = aLen; int temp; BuildHeap(A, hLen); while (hLen >= 1) { temp = A[hLen-1]; A[hLen-1] = A[0]; cout << A[0] << ' '; A[0] = temp; hLen--; AdjustHeap(A, hLen, 0); } } int main() { int A[10]={1, 3, 4, 5, 7, 2, 6, 8, 0}; HeapSort(A, 9); return 0; }
相关文章推荐
- sizeof()的使用及各种数据类型的字节大小
- pod的使用方法
- 接口用例之好用例和坏用例
- jquery-zclip插件
- Eclipse中tomcat插件配置
- 腾讯优测优分享 | 游戏的UI自动化测试可以这样开展
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- 排序算法:插入 冒泡 快速排序
- jquery3.0源码解读(三)Selector
- [Matlab] mex混编OpenCV
- java算法-优化360开机时间服务端写法
- 游戏开发入门03
- 键盘event.which属性
- 【排障】为什么你发出去的邮件被退回
- leetcode 38. Count and Say
- Java web图片验证功能实现二
- iOS 中SharaSDK 发送短信功能的集成
- iOS开发:电池电量监测
- weblogic/c3p0配置mysql数据源出现乱码问题
- 子盒子水平垂直居中的小技巧