C#堆排序实现方法
本文实例讲述了C#堆排序实现方法。分享给大家供大家参考。具体如下:
privatestaticvoidAdjust(int[]list,inti,intm) { intTemp=list[i]; intj=i*2+1; while(j<=m) { //morechildren if(j<m) if(list[j]<list[j+1]) j=j+1; //comparerootsandtheolderchildren if(Temp<list[j]) { list[i]=list[j]; i=j; j=2*i+1; } else { j=m+1; } } list[i]=Temp; } publicstaticvoidHeapSort(int[]list) { //buildtheinitialheap for(inti=(list.Length-1)/2;i>=0;i-) Adjust(list,i,list.Length-1); //swaprootnodeandthelastheapnode for(inti=list.Length-1;i>=1;i-) { intTemp=list[0]; list[0]=list[i]; list[i]=Temp; Adjust(list,0,i-1); } }
希望本文所述对大家的C#程序设计有所帮助。