仅根据第一列对C中的二维数组进行排序

Jam*_*ams 5 c arrays sorting multidimensional-array

我有一个包含 2 列的双精度型数组,最大行数为 1000,我想根据每行的第一个元素对其进行排序,然后移动整行。本质上,我希望第二列元素没有影响。

我将数组介绍为:

双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

请注意它是如何仅根据第一列中的值进行排序的,然后整个行都会被切换。

我尝试使用非常标准的插入排序算法,只需将输入参数更改为二维数组,并在函数内添加一个代码块来更改行的两个元素,但我不断收到此错误:

错误:数组的元素类型不完整 'double []' sort_double_array(double A[][], int n) {

我该怎么做呢?如果能够使用插入排序来做到这一点就好了。我可以发布我用于插入排序的函数,但它非常适合一维数组。

提前非常感谢,真的被困在这里了。

干杯,

詹姆士。

Pra*_*bhu 3

尝试将函数声明为 sort_double_array(double A[][2], int n);

多维数组必须具有除第一个维度之外的所有维度的界限。