如何在c中对矩阵(2D数组)进行排序?

时间:2016-11-27 10:27:29

标签: c arrays

我想按列和行对4X4矩阵(2D数组)进行排序。例如:

原始矩阵:

6 2 9 4 4 5 -1 9 4 -2 0 7 3 2 10 3

期望的结果:

-2 -1 0 2 2 3 3 4 4 4 5 6 7 9 9 10

1 个答案:

答案 0 :(得分:2)

2D数组基本上使用了连续的内存位置,因此您可以对排序1D数组进行排序

const int row = 4,col = 4;
int mat[row][col] = {6 ,   2 ,   9  ,  4
                    ,4 ,   5 , -1   , 9
                    ,4   ,-2 ,   0   , 7
                    ,3    ,2 ,  10   , 3};
sort(&mat[0][0],&mat[0][0]+(row*col));
for(int i=0;i<row;i++)
{
    for(int j=0;j<col;j++)
        cout<<mat[i][j]<<" ";
    cout<<endl;
}