排序算法之 堆排序
2010-06-26 16:38
288 查看
#include<iostream> using namespace std; void HeapAdjust(int H[] ,int s,int m) { int rc=H[s]; int j; for(j=s*2;j<=m;j*=2) { if(j<m && H[j]<H[j+1]) j++; if(rc>H[j])break; H[s]=H[j]; s=j; } H[s]=rc; } void HeapSort(int H[],int length) { for(int i=length/2;i>0;--i) { HeapAdjust(H,i,length); } for(i=length;i>1;--i) { int temp; temp=H[1];H[1]=H[i];H[i]=temp; HeapAdjust(H,1,i-1); } } int main() { int H[11]={0,9,8,5,6,4,7,1,3,2,10}; HeapSort(H,10); for(int i=1;i<=10;i++) cout<<H[i]<<" "; cout<<endl; return 0; }
相关文章推荐
- 排序算法----堆排序
- 排序算法(七) 堆排序
- 排序算法---堆排序
- 常用的排序算法(快速排序、插入排序、希尔排序、堆排序、冒泡排序、选择排序、归并排序)
- 排序算法的数组实现 -- 堆排序(二)
- Java-时间复杂度为O(nlogn)的排序算法(快速排序, 归并排序, 堆排序, 希尔排序)
- 【排序算法】-堆排序
- 排序算法(1):插入排序,选择排序,希尔排序,堆排序
- 排序算法-堆排序
- 写个堆排序,快速排序等一些排序算法
- 排序算法之四--堆排序
- 排序算法总结4-堆排序
- 排序算法之堆排序(Java)
- 排序算法——堆排序
- [排序算法]堆排序
- 排序算法——堆排序
- 排序算法——堆排序 收藏
- 排序算法思想——归并排序、堆排序、shell排序
- 【排序算法】堆排序的分析
- 排序算法(五) —— 堆排序