高校数学10分プログラミング(数学Ⅰ編 3.データの分析)2日目「データをソートする」解説
マガジンリスト > 数学Ⅰ編 3.データの分析 > 2日目 解説
本日の課題、おつかれさまでした。
データをソートするプログラムを作成することができたでしょうか。
解答例
データをソートするプログラムはソースコード2のようになります。
// データをソートする
void setup(){
// データ
int data_num = 20; // データ数
float[] data = {3,4,9,7,6,10,5,5,7,9,6,8,1,5,7,10,8,6,3,7}; // データ
// dataを昇順にソートする
float[] bs_data = bubblesort(data_num, data);
println(bs_data);
}
// バブルソート(昇順)
float[] bubblesort(
int data_num, // データ数
float[] data // データの配列
){
float[] bs = new float[data_num];
for(int i=0; i<data_num; i++){
bs[i] = data[i];
}
// バブルソートの処理
for(int i=0; i<data_num; i++){
for(int j=1; j<data_num-i; j++){
if(bs[j-1] > bs[j]){
float temp = bs[j];
bs[j] = bs[j-1];
bs[j-1] = temp;
}
}
}
return bs;
}
ソースコード2 データをソートするプログラム(完成版)
開発環境ウィンドウを開いて(スケッチ名を「execute_bubble_sort」としています)、ソースコード2をそのテキストエディタ部分に記述して、実行してみると、コンソールに
[0] 1.0
[1] 3.0
[2] 3.0
[3] 4.0
[4] 5.0
[5] 5.0
[6] 5.0
[7] 6.0
[8] 6.0
[9] 6.0
[10] 7.0
[11] 7.0
[12] 7.0
[13] 7.0
[14] 8.0
[15] 8.0
[16] 9.0
[17] 9.0
[18] 10.0
[19] 10.0
と出力されます(図1)。
この結果をみると、データがきちんと昇順にソートされていることがわかります。
本日は以上です。
明日は、データの中央値を求めるプログラムについて考えていきたいと思います。
明日もよろしくお願いします。
※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。
MK’s papa