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#程序设计有所帮助。