使用qsort()在ANSI C中对二维数组进行排序

and*_*eas 6 c sorting ansi quicksort

我有一个二维数组,并希望根据第一行中元素的顺序对两行进行排序:

我开始:

第1行:{4,3,1,5,0}

第2行:{7,8,9,1,2}

结果应该是:

第1行:{0,1,3,4,5}

第2行:{2,9,8,7,1}

问题:是否可以通过使用qsort()函数实现此目的?

alk*_*alk 1

不是直接...

...但qsort()可以按每个向量的第一个元素对向量进行排序。

因此,示例数据需要转置并转换为伪二维数组,其中根指针指向指针数组,每个指针指向转置后的原始数据的一行。

qsort()然后传递根指针,比较函数对向量的第一个元素进行比较。向量通过引用传递给比较函数。

排序完成后,需要将结果转换为与调用 之前完成的相反方式qsort()