見出し画像

高校数学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)。

図1 ソートされたデータがコンソールに出力される

この結果をみると、データがきちんと昇順にソートされていることがわかります。


本日は以上です。
明日は、データの中央値を求めるプログラムについて考えていきたいと思います。

明日もよろしくお願いします。

※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。

MK’s papa

いいなと思ったら応援しよう!