小弟关于数据结构的问题,还请各位高手指点一二!!!
void sift_course( sqlist &l,int i,int n )
{
int j,t;
j=2*i;
t=l.array[i];
while( j<=n )
{
if( j<n&&l.array[j]<l.array[j+1] )
j++;
if( t<l.array[j] )
{
l.array[i]=l.array[j];
i=j;
j=2*i;
}
else
break;
}
l.array[i]=t;
}
void heap_sort( sqlist &l )
{
int i,t;
for( i=(int)l.length/2;i>=1;i-- )
sift_course(l,i,l.length);
for( i=l.length;i>=2;i-- )
{
t=l.array[1];
l.array[1]=l.array[i];
l.array[i]=t;
sift_course(l,1,i-1);
}
}
这是我做的堆排序,但结果总是有一个数不能显示出来。
请各位高手指点小弟一二!!!!