ソート
・整列のことで小⇒大を「昇順」、大⇒小を「降順」という。 ・良く用いられる手法で、データ数、CPUなどの負荷、データの傾向などによって複数の方式から最適なものを選ぶのが基本 ・今回はその基礎になるバブルソートを用いる ・バブルソートは交換ソートともいい、仕組みが単純で件数が少ないと速い。 ・イメージは「並んだ箱の隣どうしの順序をなおすことを繰返すといつかはできる」 ・実際は昇順で末尾に最小値がある場合に最も手間がかかる=要素数-1回の交換が必要。 ・よって2重ループで実装できる(後で改良するが) ① 以下をカウンタiで0から要素数-2まで繰返す(つまり要素数-1回繰返す) ・以下をカウンタjで0から要素数-2まで繰返す(つまり要素数-1回繰返す) ・要素[j]>要素[j + 1]ならば交換する
ソート:フローチャートを描こう
・http://ha233.rundog.org/wp-content/uploads/2023/06/sort.zip
ソート:プログラムにしよう
・配列の値は初期化で与えてOK
例:int[] val = {80,20,10,40,50,60}; //元の1次元配列
・ソート結果の表示を追加すること
作成例
int[] val = {80,20,10,40,50,60}; //元の配列
for(int i = 0; i < val.Length - 1; i++) { //カウンタiで要素数-1回繰返す
for(int j = 0; j < val.Length - 1; j++) { //カウンタjで要素数-1回繰返す
if(val[j] > val[j + 1]) { //隣と降順になっていたら
var temp = val[j]; //退避してから
val[j] = val[j + 1]; //交換する
val[j + 1] = temp;
}
}
}
foreach (int i in val) { //配列の全要素について繰返す
Console.WriteLine(i);
}