\r\n\r\n
**ソートと選択ソートは、データの集合を並べ替えるための2つのソートアルゴリズムです。時には、データを特定の順番で並べ替える必要があります。ソートアルゴリズムとは、データの集合をソートする仕組みのことである。ソートでは、データを数値順や辞書順に並べる。データが正しくソートされていれば、より速くデータを検索することができます。電話帳の電話番号の並びが悪いと、特定の電話番号を探すのが大変です。同様に、辞書の単語がアルファベット順でないと、単語を探し出すのが難しくなります。そのため、仕分けは日常生活でも役に立つ。コンピュータサイエンスでは、データの集合を並べ替えるソートアルゴリズムが存在する。この2つのアルゴリズムは、**ソートと選択ソートです。ソートは、配列の要素を1つずつ移動させながらソートするアルゴリズムです。選択ソートでは、配列の最小の要素を見つけ、最初の位置と要素を入れ替え、次に2番目に小さい要素を見つけ、2番目の位置の要素と入れ替え、配列全体がソートされるまでそのプロセスを続けることになります。ソートと選択ソートの重要な違いは、**ソートが一度に2つの要素を比較するのに対し、選択ソートは配列全体から最小の要素を選択してソートすることです。
1. 概要と主な違い 2. **ソートとは 3. 選択ソートとは 4. **ソートと選択ソートの類似点 5. 並べて比較 - 表形式での **ソート vs. 選択ソート 6. まとめ
**ソートは、インプレース比較に基づくソートアルゴリズムである。その方法は、配列の段階的な探索である。未ソートの項目は移動し、**配列のソート済みサブリストにソートされます。ソートのアルゴリズムは、次のような例で説明することができます。
例えば,初期配列を77,33,44,11,88とした場合,このソートアルゴリズムでは,まず現在の要素を選択する.
現在の要素は77です。 現在の要素と左側のすべての要素を比較し、77が最初の要素で、左側には要素がありません。現在位置のインデックスを0とする。
現在位置のインデックスを1つ増やすと、インデックスが1になり、現在の要素は33になります。現在、33はインデックス0に、77はインデックスX1にあります。
アレイは33、77、44、11、88になりました。
ここでも、インデックスはインクリメンタルです。インデックスが2で、現在の要素が44である場合、左側の要素と比較されます。ここで、配列は33,44,77,11,88となり、左側の要素をすべて比較する必要があります。つまり、44は33と比較され、33は44より小さいのです。ですから、これらの要素を入れ替える必要はありません。
配列は現在、33,44,77,11,88となっています。
ここでも、インデックスはインクリメンタルです。インデックスが3、現在の要素が11で、左側のすべての要素と比較され、11が77より小さいので、この2つが入れ替わります。11と44を比較すると、11の方が44より小さいので、この2つを入れ替えました。11は33より小さいので、この2つの値は交換されます。
配列は現在、11,33,44,77,88となっています。
インデックスをインクリメントすると4となり、値は88。77より高いので、スワップする必要はない。最終的に、ソートされた配列は11,33,44,77,88となります。
図01: **ソート例
**ソートは上記のように実装されています。初期配列は 77,33,44,11,88 である。ソート後の出力は 11,33,44,77,88 である。
選択ソートは、インプレース比較に基づくソートアルゴリズムである。アレイはいくつものパーツに分かれています。左端に仕分けされたパーツがあります。右端にあるのがソートされていない部分です。まず、最小の値を見つける必要があります。そして、左の要素と入れ替わります。要素がソートされた配列になりました。この処理は,ソートされていない配列の境界を1要素ずつ右に移動することで継続されます.選択ソートのアルゴリズムは、以下の例で説明できる。
例えば、初期配列を77,33,44,11,88,22とした場合、このソートアルゴリズムでは、配列の中で最も小さいものを見つけることになります。最小の要素は11であり,配列の0番目のインデックスにある要素と入れ替わる.
配列は現在、11,33,44,77,88,22です。
最小の要素はインデックス0にあるので、11がソートされる。 残りの要素のうち最小の22は、最初のインデックスの要素と入れ替わる。
配列は現在、11,22,44,77,88,33となっています。
11と22はすでにソートされており,残りの最小値は33であるため,2番目のインデックス要素と入れ替えられる.
配列は現在、11,22,33,77,88,44となっています。
11, 22, 33の要素はすでにソートされている。残りの最小値は44であり,これは3番目のインデックス要素と入れ替えられる。
アレイは現在、11,22,33,44,88,66となっています。
要素11, 22, 33, 44はすでにソートされており,残りの要素は88と66である.要素66は4番目のインデックス要素と入れ替わる.
アレイは現在、11,22,33,44,66,88です。
選択ソートアルゴリズムでソートされた配列である。
図02:選択ソートの例
**ソートは上記のように実装されています。初期配列は 77,33,44,11,88 である。ソート後の出力は 11,33,44,77,88 である。
**ソート・選択ソート | |
ソートは、配列の要素を1つずつ移動させながらソートするアルゴリズムです。 | 選択ソートでは、配列の最小の要素を見つけ、最初の位置と要素を入れ替え、次に2番目に小さい要素を見つけ、2番目の位置の要素と入れ替え、配列全体がソートされるまでそのプロセスを続けることになります。 |
プロセス | |
ソートは、配列全体がソートされるまで、2つの要素を比較しながらサブリストをソートします。 | 選択ソートは、最小の要素を選択して最初の位置と入れ替え、再び残りの位置の最小の値を選択して2番目の位置と入れ替え、この処理を最後まで続ける。 |
安定性 | |
ソートは、安定したソートアルゴリズムです。 | 選択ソートは、安定したソートアルゴリズムではありません。 |
データの並べ替えが必要な場合もある。コンピュータサイエンスでは、データをソートするアルゴリズムがあります。この記事では、**ソートと選択ソートという2つのソートアルゴリズムについて説明します。ソートは、配列の要素を1つずつ移動させながらソートするアルゴリズムです。選択ソートでは、配列の最小の要素を見つけ、最初の位置と要素を入れ替え、次に2番目に小さい要素を見つけ、2番目の位置の要素と入れ替え、配列全体がソートされるまでそのプロセスを続けることになります。ソートと選択ソートの違いは、**ソートが一度に2つの要素を比較するのに対し、選択ソートは配列全体から最小の要素を選択してソートすることです。
この記事のPDF版をダウンロードし、引用の仕方に従ってオフラインで使用することができます。PDF版はこちらからダウンロードしてください:** 並べ替えと選択並べ替えの違いについて