我有一个双列数组,有1000行,我想根据每行的第一个元素对其进行排序,然后移动整个行。实质上,我希望第二列元素不会产生影响。
我在主函数中定义了数组:
double A[1000][2];
例如,A的内容可能是:
18.0 2.0 5.5 3.5 10.0 8.1 4.0 2.5
排序后,我希望它看起来像这样:
4.0 2.5 5.5 3.5 10.0 8.1 18.0 2.0
也可以将其按相反顺序排序,如下所示:
18.0 2.0 10.0 8.1 5.5 3.5 4.0 2.5
请注意,它仅基于第一列的值进行排序,然后整行被交换。
我尝试使用标准插入排序算法,并将输入参数更改为二维数组,并在函数内部添加代码块以更改行的两个元素,但我一直收到以下错误:
error: array has incomplete element type 'double []' sort_double_array(double A[][], int n) {
我该怎么做?最好能够使用插入排序来实现。我可以发布我正在使用的插入排序函数,但它对于一维数组完美地工作。
非常感谢您的帮助,我真的卡在这里了。
谢谢,
詹姆斯。
我在主函数中定义了数组:
double A[1000][2];
例如,A的内容可能是:
18.0 2.0 5.5 3.5 10.0 8.1 4.0 2.5
排序后,我希望它看起来像这样:
4.0 2.5 5.5 3.5 10.0 8.1 18.0 2.0
也可以将其按相反顺序排序,如下所示:
18.0 2.0 10.0 8.1 5.5 3.5 4.0 2.5
请注意,它仅基于第一列的值进行排序,然后整行被交换。
我尝试使用标准插入排序算法,并将输入参数更改为二维数组,并在函数内部添加代码块以更改行的两个元素,但我一直收到以下错误:
error: array has incomplete element type 'double []' sort_double_array(double A[][], int n) {
我该怎么做?最好能够使用插入排序来实现。我可以发布我正在使用的插入排序函数,但它对于一维数组完美地工作。
非常感谢您的帮助,我真的卡在这里了。
谢谢,
詹姆斯。
qsort
。 - BLUEPIXY