选择排序--堆排序
堆排序算法如下:
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;}