排序算法之堆排序
2010-02-10 20:18
134 查看
//HeapSort 堆排序 void Sift(int A[],int low,int high) { int i=low,j=2*i; int temp=A[i]; while(j<=high) { if(j<high && A[j]<A[j+1]) j++; if(temp<A[j]) { A[i]=A[j]; i=j; j=2*i; } else break; } A[i]=temp; } void HeapSort(int A[], int n) { int i,temp; for(i=n/2;i>0;i--) Sift(A,i,n); for(i=n;i>1;i--) { temp=A[1]; A[1]=A[i]; A[i]=temp; Sift(A,1,i-1); } }
相关文章推荐
- 排序算法----堆排序
- 排序算法(七) 堆排序
- 排序算法---堆排序
- 常用的排序算法(快速排序、插入排序、希尔排序、堆排序、冒泡排序、选择排序、归并排序)
- 排序算法的数组实现 -- 堆排序(二)
- Java-时间复杂度为O(nlogn)的排序算法(快速排序, 归并排序, 堆排序, 希尔排序)
- 【排序算法】-堆排序
- 排序算法(1):插入排序,选择排序,希尔排序,堆排序
- 排序算法-堆排序
- 写个堆排序,快速排序等一些排序算法
- 排序算法之四--堆排序
- 排序算法总结4-堆排序
- 排序算法之堆排序(Java)
- 排序算法——堆排序
- [排序算法]堆排序
- 排序算法——堆排序
- 排序算法——堆排序 收藏
- 排序算法思想——归并排序、堆排序、shell排序
- 【排序算法】堆排序的分析
- 排序算法之 堆排序