已知顺序表SeqList定义如下:
typedef struct{
KeyType key;
//InfoType otherinfo;
}RecType;
typedef RecType SeqList[MAXSIZE+1];
编写函数int f34(SeqList R,int n),用双向冒泡排序法将n个元素的待排序列R按关键字降序排序,第1趟将最大元素排在数组下标为0的位置,第2趟将最小元素排在数组下标为n-1的位置,……,依此类推,最后1趟将中间排序码排在R的中心位置。
【正确答案】:参考程序
int f34(SeqList R,int n)
{int i=1,flag=1,j;
while(flag)
{flag=0;
for(j=i;j<=n-i;j++)
{
if(R[j].key<R[j+1].key)
{
flag=1;
R[0]=R[j];
R[j]=R[j+1];
R[j+1]=R[0];
}
}
for(j=n-i;j> i;j--){
if(R[j].key> R[j-1].key)
{
flag=1;
R[0]=R[j];
R[j]=R[j-1];
R[j-1]=R[0];
}
}
i++;
}
return 0;
}
已知顺序表SeqList定义如下:typedef struct{KeyType key;//InfoType otherinfo
- 2024-11-07 01:34:19
- 数据结构与算法(13003)