-3
4X4行列(2D配列)を列と行でソートする必要があります。例えば:cで行列(2次元配列)をソートする方法は?
オリジナル行列:
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
4X4行列(2D配列)を列と行でソートする必要があります。例えば:cで行列(2次元配列)をソートする方法は?
オリジナル行列:
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
2Dアレイは、基本的contigousメモリ位置を使用するため、あなたがソート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;
}
実際の2D配列(ポインタの配列ではありません)であれば、['qsort'](http://en.cppreference.com/w/c/algorithm/qsort)を使用して、最初の要素 '&mat [0] [0]'をバッファアドレスとして返します。 – StoryTeller
配列の配列(a.k.a. "2d配列")でない場合は、すべての値を単一の1次元配列に入れ、その配列をソートしてから、値を再び行列に入れます。 –
2Dのように見せかける1D配列を実際にソートしているようです。なぜあなたはこれが必要なのか尋ねてもいいですか? –