ソート:ライブラリメソッドを用いて2次元配列をソート
・「Array.Sort(配列名);」は1次元配列専用なので、2次元配列を直接には扱えない
・例えば int[,] val = {{70,20,30},{40,50,60}}; をソートしたら、
{{20,30,40},{50,60,70}} となるようにしたい。
ソート:ライブラリメソッドを用いて2次元配列をソート:アルゴリズム
① 作業用の1次元配列を2次元配列の全要素数(配列名.Length)で用意する ② 2次元配列の全要素を作業用の1次元配列にコピーする ③ 作業用の1次元配列をライブラリメソッドを用いてソート ④ 作業用の1次元配列の全要素を2次元配列に書き戻す ・フローチャートにしよう※ XML:https://ha233.rundog.org/wp-content/uploads/2023/07/2dsort.zip
ソート:ライブラリメソッドを用いて2次元配列をソート:プログラム例
int[,] val = {{70,20,30},{40,50,60}}; //元の2次元配列
int[] w = new int[val.Length]; //作業用の1次元配列を2次元配列の全要素数で用意する
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 3; j++) {
w[i * 3 + j] = val[i, j]; //2次元配列の全要素を作業用の1次元配列にコピー
}
}
Array.Sort(w); //作業用の1次元配列を昇順にソート
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 3; j++) {
val[i, j] = w[i * 3 + j]; //作業用の1次元配列の全要素を2次元配列に書き戻す
}
}
foreach (int i in val) { //2次元配列の全要素について繰返す
Console.WriteLine(i);
}
※ XML: