交換法や選択法、挿入法は整列処理を行うときの基本となるアルゴリズムです。
ただし、並べ替えの基本的な考えを身につける場合には最適です。また、ちょっとした工夫で処理時間が速くなることもわかりましたね。
情報活用編プラス
第3章「コンピュータとプログラミング」
IP02-12
実践プログラム⑤ 整列アルゴリズム 挿入法
データを並べ替えるための整列アルゴリズムについて基本的なアルゴリズムである「交換法(バブルソート)」、「選択法」、「挿入法」について学習しました。
交換法(バブルソート)ってどのような特徴があったか育人くん覚えてますか?
はい!バブルソートは、隣同士を比較して並べ替える方法でした。
これは、イメージしやすくてわかりやすかったです!
よく覚えていましたね。
亜美さん、選択法はどのような特徴がありましたか?
はい!選択法は、先頭を基準として、すべてのデータと比較する方式でした。
添字を残しておいて交換回数を減らしたときは処理時間がすごく減ってすごいと思いました!
そうですね。
ちょっとしたアルゴリズムの工夫で、処理する時間が大きく変わることも体験できましたね。
そして挿入法です。 挿入法は、データを挿入する時に順番になるようにデータを格納する方法です。
毎回すべてのデータと比較しないので、交換法や選択法と比べ効率がよいアルゴリズムです。
それぞれの特徴についてまとめると次のようになります。
| アルゴリズム | 仕組みのイメージ | 特徴・ポイント | 長所 | 短所 |
|---|---|---|---|---|
| 交換法(バブルソート) | 隣同士を比べて、順番が違えば入れ替える。 | 隣合うデータを何回も入れ替えて並べる方法。 |
|
・入れ替え回数が多く、時間がかかる |
| 選択法 | 1番小さい(または大きい)データを見つけて、左から順に並べる。 | 比べながら“最小(最大)”を選び、決まった位置と入れ替える。 |
|
・毎回全部のデータを調べる必要がある |
| 挿入法 | すでに並んでいる部分に、次のデータを正しい場所に入れていく。 | データを1つずつ取り出し、正しい位置に「挿入」して並べる。 |
|
・データが多いと時間がかかる |
交換法や選択法、挿入法は整列処理を行うときの基本となるアルゴリズムです。
ただし、並べ替えの基本的な考えを身につける場合には最適です。また、ちょっとした工夫で処理時間が速くなることもわかりましたね。
シェルソートやクイックソートは処理時間が本当に桁違いに速かったので、交換法とかは実際には使わなそうですよね。
そうですね。業務用プログラムでは使われることはほとんどありません。
でも、個人で作成するちょっとしたプログラムでは、わかりやすい交換法を使うことはあると思いますよ。
並べ替えアルゴリズムには多くの方法がありますが、この3つをしっかり学習することでどんな方法でも対応することできるようになります。
データが多い時に向いている「シェルソート」は挿入法の改良版です。挿入法がわかっているとシェルソートは簡単に理解できます。
また、クイックソートもとても速く並べ替えができますが、アルゴリズムが複雑になります。
データが少ない場合は、「交換法」、「選択法」、「挿入法」でも十分対応できますが、数千件以上など多くのデータを並べ替える場合は「シェルソート」や「クイックソート」などの整列アルゴリズムを使いましょう。