その7 並び替えのアルゴリズム | やうたんのループ<めざせ合格ITパスポート!>

やうたんのループ<めざせ合格ITパスポート!>

めざせ合格ITパスポート!情報処理技術者試験ブログ!
やさしく学ぼう!やうたんと一緒に!情報処理の世界へようこそ!

kato

というわけで、探索にはソートが有効であるということがわかっていただけたでしょうか?

ソートさえしていれば二分探索法が使えるので、大変便利でございますよね。

並び替えも大変なんですか?


それにもいろいろやり方があります。今日はいろんなソートについて勉強します。


やうしん2

ちょっと、外に行ってきます。ソートだけに。


そーとー悪い生徒ですね、やうたん・・・。



バブルソート
バブルソートは、隣接するデータの値を比較して、並べ替えるべきかどうかを判断し、
必要に応じて並べ替える動作を繰り返す手法です。逐次比較することで、最終的に
はデータの先頭から末尾までを順番に整列することができます。

左を小さい数字、右を大きい数字に並び替えるとしますよね。

初 期 83467215 
1回目 3467215 (8を移動させていく。移動回数7)
2回目 3462158 (7を移動。移動回数3)
3回目 3421578 (6を移動。移動回数3)
4回目 3214678 (4を移動。移動回数2)
5回目 2145678 (3を移動。移動回数2)
6回目 1345678 (2を移動で終了。移動回数1。合計18回

こんなふうに動いていきます。

しらみつぶしですね。

そうだそうだ。

・・・そうでもないんですけど、結果的に小さい数字が右側にあるときに・・・
若干時間がかかる特徴があります。数字を並び替えて実験してみましょう。
(極端な例ですけどね)



初 期 87654321 
1回目 7654321 (8を移動させていく。移動回数7)
2回目 6543218 (7を移動。移動回数6)
3回目 5432178 (6を移動。移動回数5)
4回目 4321678 (5を移動。移動回数4
5回目 3215678 (4を移動。移動回数3)
6回目 2145678 (3を移動。移動回数2)
7回目 1345678 (2を移動で終了。移動回数1。合計28回。


詳しくは基本情報処理技術者試験でやりますので、今回はざーっとでいいですよ!

(つづきます)