作业帮 > 综合 > 作业

vc关于排序算法问题8.9 -4.7 152.4114.8 -4.7 347.3614.8 -9.4 132.6520.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 18:15:16
vc关于排序算法问题
8.9 -4.7 152.41
14.8 -4.7 347.36
14.8 -9.4 132.65
20.7 -4.7 238.14
20.7 -9.4 146.65
20.7 -14.2 119.36
26.6 -4.7 334.03
26.6 -9.4 204.84
26.6 -14.2 163.86
26.6 -18.9 173.71
如上数据,如何按照第一列为主关键字升序,第二列为次关键字降序.要保证每一行的3个数据总是在同一行
虽然有思路,但还是写不出具体的算法.
#include
void sortAscDesc(double a[][3],int n)
{
double temp;
for(int i=1;i=i;j--)
if(a[j-1][1]a[j][0])
{
temp=a[j-1][0];a[j-1][0]=a[j][0];a[j][0]=temp;
}
else continue;
}
}
void main()
{
double a[10][3];
for(int i=0;ia[i][j];
sortAscDesc(a,10);
for(i=0;i
再问: 哥们,你这个程序很有问题啊。你先按此关键字排序,再按主关键字排序。并且没有保证原始数据中同一行始终保持不变。
再答: 别人说的是MSD(最高位优先)基数排序。 我采用LSD(最低位优先)基数排序编写代码。 抱歉,sort排序中,应该同时交换三列就好了。不信你试试 void sortAscDesc(double a[][3],int n) { double temp; for(int i=1;i=i;j--) if(a[j-1][1]