发布网友 发布时间:2022-04-23 12:40
共1个回答
热心网友 时间:2022-05-22 02:44
主要原因是你的排序算法是从下标1开始,主函数中下标从0开始,改成一样的就可以了,下面是改过的主函数:
void main()
{
RecType R[MaxSize];
KeyType a[MaxSize];
cout<<"输入要排序的个数"<<endl;
int n,j;
cin>>n;
cout<<"输入各个元素的值"<<endl;
for(int i=1;i<=n;i++)
{
cin>>j;
a[i]=j;
}
for(i=1;i<=10;i++)
{
R[i].key=a[i];
}
cout<<"未排序前"<<endl;
for(i=1;i<=10;i++)
{
cout<<R[i].key<<" ";
}
cout<<endl;
HeapSort(R,n-1);
cout<<"堆排序后"<<endl;
for(i=1;i<=10;i++)
{
cout<<R[i].key<<" ";
}
cout<<endl;
}