读书人

抉择排序-堆排序

发布时间: 2012-12-21 12:03:49 作者: rapoo

选择排序--堆排序
堆排序算法如下:

public void HeapSort(int[] a, int length){int temp;int loc=length/2-1;for(int i=loc;i>=0;i--)AdjustHeap(a,i,length-1);for(int j=a.length-1;j>=1;j--){temp=a[0];a[0]=a[j];a[j]=temp;AdjustHeap(a,0,j-1);}}public void AdjustHeap(int[] a, int low, int length){int key=a[low];int i;for(i=2*low;i<=length-1;i*=2){if(i+2<=length && a[i+2]>=a[i+1])i++;if(key>a[i+1])break;a[low]=a[i+1];low=i+1;i++;}a[low]=key;}

数据结构排序算法总结,C++版,参看地址http://www.cnblogs.com/mingcn/archive/2010/10/17/Sort.html#4

读书人网 >编程

热点推荐