在多列上排序二维数组

vad*_*vad 4 c c++ sorting algorithm

我需要使用C或C++在多列上对二维二维数组进行排序.有人能指出我应该使用的算法还是具有此功能的现有库(可能是boost?)?

我有一种感觉,写一个递归函数可能是要走的路,但我懒得写出算法或自己实现它,如果它已经在其他地方完成.:-)

谢谢

Mic*_*yan 9

您可以使用std::sort(C++)或qsort(C或C++)执行排序操作.棘手的部分是您需要定义自定义比较函数来比较您的行.例如:

 bool compareTwoRows(double* rowA, double* rowB){
     return ( (rowA[0]<rowB[0]) || ((rowA[0]==rowB[0])&&(rowA[1]<rowB[1])) );
 }

 // ...
 double** two_dimensional_array = // ...
 int rows = // ... number of rows ... 
 std::sort(two_dimensional_array,two_dimensional_array+rows,&compareTwoRows);
 // ...
Run Code Online (Sandbox Code Playgroud)