バブルソートと選択ソートの大きな違いは、バブルソートが隣接する要素の順番がおかしい場合に入れ替えを繰り返して操作するのに対し、選択ソートは未ソートの部分から最小の要素を探してそれを配列の先頭に置くことを繰り返して配列をソートする点です。
ソートとは、データを整列させる手法のことである。
データ要素を素早く検索するのに役立つ。
ソートアルゴリズムは、機械学習や、大規模なデータセットを操作するビッグデータ解析など、多方面で有用です。
ソートアルゴリズムには様々なものがあります。
バブルソートや選択ソートはその一つです。
バブルソートとは
バブルソートはソートアルゴリズムの一つで、要素を昇順に並べ替えます。
隣り合った項目を繰り返し比較する。
そして、左の項目が右の項目より大きい場合、項目が入れ替わる。
例として次のようなものがあります。
5 8 1 6 9 2
5と8を考える。
5 1のように2つの数字を入れ替える必要はなく、2つの項目を入れ替える。
これで、リストは次のようになります。
5 1 8 6 9 2
次に、8と6を考える。
8>6なので、この2つの数字を入れ替えます。
リストは次のようになる。
5 1 6 8 9 2
次に、8と9を考えてみましょう。
8<9なので、入れ替える必要はない。
次に、9と2を考えます。
9>2なので、2つの値を入れ替える必要がある。
5 1 6 8 2 9
一番大きいものが一番右の位置にあります。
あとは、5 1 6 9 2 を考えればよい。
5と1を比較すると、5>1なので、値を入れ替える。
あとは、先ほどと同じように、同じ手順を踏めばよい。
反復を終えたリストは次のようになる。
1 5 6 2 8 9
さて,8と9はリストの中で最も大きな項目ですが,すでにソートされています.今度は、1 5 6 2 を考えなければなりません。
この作業を続けて、ようやくソートされたリストを得ることができる。
セレクションソートとは
選択ソートは、要素を昇順に並べ替えるソートアルゴリズムです。
ソートされていない配列の中から最小の要素を見つけ、その要素とリストの先頭を入れ替えます。
例として次のようなものがあります。
7 8 5 4 9 2
最小値を7とし、8を調べます。
7より小さくないので、5を調べます。
7より小さいので,最小値は5です。
これは最小値(5)よりも小さいです。
したがって、今の最小値は4です。
次に、数字9を考えます。
これは現在の最小値(4)よりも小さくはありません。
これは現在の最小値(4)よりも小さい。
これで最小値は2になりました。
7と2を入れ替えることができます。
これで、リストは次のようになります。
2 8 5 4 9 7
さて、2はすでにソートされており、リストの中で最小の数字です。
残りはソートされていないリストです。
ここで、8 5 4 9 7 をソートする必要があります。
8を最小値として考えます。
値5は最小値(8)よりも小さいです。
次に,値4は最小値より小さいので,最小値は4になります.そうすると、9は最小値4より小さくないことになります。
そこで、次の要素7を考える。
これは最小値 4 よりも小さくはありません。
そこで、値4と値8(リストの1番目の要素)を交換します。
これで、リストは次のようになります。
2 4 5 8 9 7
これで、2と4はソートされました。
5を最小値とし、上記の処理を繰り返すと、最後にソートされたリストが得られます。
バブルソートと選択ソートの違い
定義
バブルソートは、リストを連続的に走査し、隣接するペアを比較して要素を並べ替える単純なソートアルゴリズムです。
これに対して選択ソートは、リストの中から(昇順に考えて)最も小さい値を取り出して、配列の適切な位置に移動させるソートアルゴリズムです。
したがって、これがバブルソートと選択ソートの主な違いです。
機能性
バブルソートは隣接する要素を比較し、それに応じて入れ替えます。
選択ソートは、ソートされていない部分配列から最小の要素を選択し、ソートされた部分配列の次の位置に配置します。
効率性
さらに、バブルソートと選択ソートのもう一つの違いは、バブルソートに比べて選択ソートの方が効率が良いということだ。
速度
また、バブルソートと選択ソートのもう一つの違いは、速度です。
選択ソートはバブルソートに比べて速い。
方法
さらに、バブルソートと選択ソートのもう一つの違いは、バブルソートが項目交換型であるのに対し、選択ソートは項目選択型である点です。
結論
まとめると、バブルソートと選択ソートの主な違いは、バブルソートは隣り合う要素の順番を入れ替える処理を繰り返すことです。
一方、選択ソートは、ソートされていない部分から最小の要素を見つけ出し、それを配列の先頭に置くことを繰り返すことで配列をソートします。