トップ->アルゴリズム入門

アルゴリズム入門内検索

目次
アルゴリズムトップ
0. はじめに

1. アルゴリズム
   1. アルゴリズムとは
   2. 当ページの範囲
   3. 良いアルゴリズム
   4. フローチャートの書き方(記号)
   5. フローチャートの書き方(構造)
   6. 順次構造
   7. 分岐構造
   8. 反復構造

2. 順次構造
   1. 代入
   2. 計算
   3. 入力
   4. 出力
   5. 練習問題1
   6. 練習問題2

3. 分岐構造
   1. 条件分岐
   2. 単一分岐
   3. 練習問題1
   4. 多重分岐
   5. 複合条件
   6. ケース(多方向分岐)
   7. 練習問題2
   8. 練習問題3

4. 反復構造
   1. 反復構造の種類
   2. 前判定型
   3. 後判定型
   4. 練習問題1
   5. 練習問題2
   6. 練習問題3
   7. 多重反復処理(ネスト)
   8. 練習問題4
   9. 練習問題5

5. 配列
   1. 配列とは
   2. 練習問題
   3. 2次配列
   4. 練習問題
   5. 素数を求める,その1
   6. 素数を求める,その2

6. 検索・ソート
   1. サブルーチン
   2. シーケンシャルサーチ
   3. バイナリサーチ
   4. 練習問題
   5. ルックアップテーブル
   6. ソートとは
   7. 選択法
   8. 交換法
   9. バブルソート
   10. 挿入法
   11. クイックソート
   12. 処理速度の比較

7. 文字列
   1. 文字と文字列
   2. 文字列処理
   3. 文字列のコピー
   4. 練習問題
   5. 文字列の比較
   6. 文字列の連結
   7. 文字列の検索



トップ-> アルゴリズム入門:6章.検索・ソート-> 6-9.バブルソート

←前ページへ :  解答へ :  次ページへ→



6-9.バブルソート

  さらに比較回数を少なくするために次のようなアルゴリズムでソートしてみる。 ただし、昇順ばかりではつまらないので、今度は降順にソートしてみる。

  1. 先頭(要素0番)から下に隣接する値を比較し、降順になっていなければその値を交換する。
  2. これをすべて降順になるまで繰り返す。








| 要素 |  ソート前 | 1回処理後 | 2回処理後 | 3回処理後 | 4回処理後 |






0 84 121 121 121 140
1 121 84 93 140 121
2 43 93 140 93 93
3 93 140 84 84 93
4 140 83 83 93 181
5 83 43 93 181 84
6 14 93 181 83 83
7 93 181 58 58 58
8 181 58 43 43 43
9 58 14 14 14 14






    赤字:降順として確定したところ     青字:次に下に降りる値
1回目の処理は次のように行われる。
  • 84と121を比較すると降順になっていないので、交換する。
  • 84と43を比較すると降順になっているので、次に行く。
  • 43と93を比較すると降順になっていないので、交換する。
  • 43と140比較すると降順になっていないので、交換する。
  • 43と93比較すると降順になっていないので、交換する。
  • 43と14を比較すると降順になっているので、次に行く。
  • 14と93を比較すると降順になっていないので、交換する。
  • 14と181を比較すると降順になっていないので、交換する。
  • 14と58を比較すると降順になっていないので、交換する。
      →ある値がそれ以下の値に出会うまで、その値を下におろす

  このように降順にソートするフローチャートを考えてみてください。 ただし、メインルーチン、初期設定ルーチン、表示ルーチンは 前ページのものをそのまま使う。

  バブルソートとは、昇順に並べ替えたときに、小さい値が泡のように上に行くような 処理であるため、バブルソートという名が付けられた。


←前ページへ :  解答へ :  次ページへ→