アルゴリズムとデータ構造 --- 理論編 --- 山本 真基 バブルソート アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9
バブルソート --- アルゴリズムの説明 --- 入力された数の列 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 目標 2 9 5 3 7
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 動作が分かりやすいようコピーしておく 2 9 5 3 7 5 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 下段に注目 5 7 2 9 5 3 5 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 1番目と2番目に着目 5 7 2 9 5 3 5 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいなら交換 5 7 2 9 5 3 5 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 そうでないので 交換しない 5 7 2 9 5 3 5 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 2番目と3番目に着目 5 7 2 9 5 3 5 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいなら交換 5 7 2 9 5 3 5 2 7 7 2 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 3番目と4番目に着目 5 7 2 9 5 3 5 2 7 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいなら交換 5 7 2 9 5 3 5 2 7 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 そうでないので 交換しない 5 7 2 9 5 3 5 2 7 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 4番目と5番目に着目 5 7 2 9 5 3 5 2 7 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 5 7 2 9 5 3 5 2 7 9 5 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 5 7 2 9 5 3 5 2 7 5 9 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 5番目と6番目に着目 5 7 2 9 5 3 5 2 7 5 9 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 5 7 2 9 5 3 5 2 7 5 9 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 5 7 2 9 5 3 5 2 7 5 9 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 6番目と7番目に着目 5 7 2 9 5 3 5 2 7 5 9 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 5 7 2 9 5 3 5 2 7 5 9 3
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 5 7 2 9 5 3 5 2 7 5 3 9
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 ここまでの動作で, 何か起きたのか? 5 7 2 9 5 3 最大の9が最右に移動 5 2 7 5 3 9
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 最大である数字9の 位置が確定 5 7 2 9 5 3 最大の9が最右に移動 5 2 7 5 3 9
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 下段を利用 5 7 2 9 5 3 7 5 3 9 2 7 5 3 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第2ラウンド目 7 5 3 9 2 7 5 3 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 1番目と2番目に着目 7 5 3 9 2 7 5 3 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 7 5 3 9 2 7 5 3 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 左が大きいので交換 7 5 3 9 2 2 5 7 5 3 9
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 同様の操作を繰り返す 7 5 3 9 2 7 5 3 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第2ラウンド終了 7 5 3 9 2 5 3 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第2ラウンドで 何が起きたのか? 5 2 7 5 3 9 2番目に大きい7が右から2番目に移動 2 5 5 3 7 9
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 2番目に大きい数字7の位置が確定 5 2 7 5 3 9 2番目に大きい7が右から2番目に移動 2 5 5 3 7 9
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 以降,同様の操作を 繰り返す 5 2 7 5 3 9 5 3 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第3ラウンド終了 3 5 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第4ラウンド終了 3 5 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第5ラウンド終了 3 5 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第6ラウンド終了 3 5 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第7ラウンド終了 3 5 7 9 2
バブルソート --- アルゴリズムの説明 --- 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 第7ラウンド終了 3 5 7 9 2 ソーティング完了!
2 3 5 5 7 9 バブルソート:考察 7 6 5 4 3 2 1 各ラウンドで一つの 入力: 5, 7, 2, 9, 5, 0, 3 入力: 5, 7, 2, 9, 5, 0, 3 出力: 0, 2, 3, 5, 5, 7, 9 各ラウンドで一つの 数字の位置が確定 2 3 5 5 7 9 7 6 5 4 3 2 1