c - 如何在c中对矩阵(二维数组)进行排序?

标签 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

最佳答案

二维数组基本上使用连续的内存位置,因此您可以像对一维数组进行排序一样对其进行排序

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;
}

关于c - 如何在c中对矩阵(二维数组)进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40827891/

相关文章:

c - 单击鼠标时选择基元不起作用

c - struct成员变量的内存分配

C程序无法编译: it shows "lvalue" error

javascript - 将 viewbag 转换为 javascript 数组

java - 在java中向后排列数组

java - 在 Scala(或 Java)中传递二维数组的一列

javascript - 查找一组数组中的最小和最大时间

c - 调用 fcntl() 的目的是什么,文件描述符为 -1,cmd 为 F_GETFL?

c - 在 C 中取消引用本地数组

javascript - 如何对 Javascript Unix 时间戳数组进行排序