【请教】大家帮我看看这个堆排序有什么问题。多谢了。
void HeapAdjuse(int R[],int low,int high){
int i,j,temp;
i=low;
j=2*i;
temp=R[low];
for(j=2*i;j<=high;j*=2)
{
if(j<high&&R[j+1]>R[j])
j++;
R[low]=R[j];
low=j;
}
R[low]=temp;
}
void HeapSort(int R[],int n)
{
int i,temp;
for(i=n/2;i>0;i--)
HeapAdjuse(R,i,n);
for(i=n;i>1;i--)
{
temp=R[i];
R[i]=R[1];
R[1]=temp;
HeapAdjuse(R,1,i-1);
}
}
为什么得不到正确的排序结果,我按照严蔚敏的数据结构写的程序。请高手快点指点,多谢!