まぐとろぐ

書き置き場

ソート1

「ソート(整列)なんて片っ端から昇順か降順でやれば良いじゃん?」って思っている方、これはナンセンス。情報系のデベロッパたるもの常にアルゴリズムを意識しなくてはなりません。

ここでは基本何たら試験に出題されるソートのアルゴリズムを何個か紹介していきます。

 

1.バブルソート

これは隣合った数字と自分の数字の大小を比較し整列するアルゴリズム

1回のループで数字が1つ定まる。

最悪計算時間が長いが単純な仕組み、また並列演算との親和性が高いため実装が楽。

 

2.選択ソート

これは配列から最小値を取る要素をサーチしそれを配列の先頭に置く、以後この繰り返しを行うアルゴリズムである。また、初めの最小値には配列の先頭値を振り込んでおく。

バブルソートと違い、全体から要素を抽出して並び替えていくものである。

選択対象の値をインデックスで保持し、その値と比較しながら洗っていくので各ループの最大交換数は1回であるのでバブルソートより高速。

 

3.挿入ソート

ソート済みのインデックスに新たな要素を追加するアルゴリズム

番兵等で効率化も図れるが基本何たら試験の管轄外なので割愛

ソート済みの情報量が少ないほど高速なのでクイックソートの仕上げに使われることがよくある。

アルゴリズムを分析すると、クイックソートで分割した整列を挿入ソートで組み立てる。簡単やな

 

そろそろ面倒になってきたから4からは次の記事で