少しでも分かりやすく伝えたい選択ソート

少しでも分かりやすく伝えたい選択ソート

皆さんこんにちは!!
今回はソートの中でも構造が比較的単純な選択ソートについて説明していきます。

選択ソートとは

まず、ソート(sort)の意味自体はデータの大小等を比較し並べ替える事を言いますが、今回説明する選択ソートはズバリ言うと、最大値を最後に移動していくことで並べ替える方法です。
ちなみに今回説明する選択ソートはマージソートやクイックソートといった他のソートと比べてソートに時間がかかります。じゃあ何でこの概念が存在するのか。そう、それは構造が簡単で実装が容易だからです。

選択ソートのやり方

と、いうことで早速選択ソートのソートの手順について説明していきます!

1.データを用意する

まずはソートするデータを用意します。

選択ソートするデータ

今回は上のようなデータを用意しました。このデータを基にソートを行っていきます!

2.データの中で最大値を見つける

次にデータの中で最大値を見つけます。
最初から順番に探していきます。今回だと「15」が最も大きい数ですね。

3.最大値を一番後ろに移動させる

先ほど選択した「15」を一番後ろに移動していく作業を行っていきます。

選択ソートのソート_1

この「15」より大きい数はないので(最大値を選択したため)一番右端に固定されます。
この時、元々右端にあった「1」と場所を入れ替えます。

4.  2.と3.の作業を繰り返す

これ以降の作業は「2.データの中で最大値を見つける」と「3.最大値を一番後ろに移動させる」の作業を繰り返し行うことでソートを行っていきます。

次にソート済みの「15」を除いた中で最大値を探します。今回は「13」が当てはまります。

選択ソートのソート_2

最大値の「13」と右端にある「1」とを入れ替えます。

次に大きな値は「9」ですね。

選択ソートのソート_3

しかしこれは右端にあるのでどこかと入れ替える必要はありません。よってそのまま固定されます。

あとはこれを繰り返していきます。

選択ソートのソート_4

最大値の「7」を右端に固定します。右端が最大値になっているので入れ替える必要はありません。

選択ソートのソート_5

最大値の「5」と右端にある「1」とを入れ替えます。

選択ソートのソート_6

最大値の「3」と右端にある「1」とを入れ替えます。

選択ソートのソート_7

最大値の「1」を右端に固定します。右端が最大値になっているので入れ替える必要はありません。

これで昇順にソートすることができました。

まとめ

今回は選択ソートについて説明してきました。最大値を右端に固定していくので右端から順にソートが進んでいきます。
他にも挿入ソートやマージソート、クイックソートといったソートの記事も紹介しているので合わせてご覧ください!