Javaで選択ソートを実装する方法は?



この記事は、Javaでの選択ソートを完全に理解するのに役立ちます。

学習とコーディングが最も簡単なアルゴリズムの1つです。この記事は、Javaでの選択ソートの詳細を理解するのに役立ちます。この記事では、次のポイントについて説明します。

それでは、このSelection Sort InJavaの記事から始めましょう。





選択ソートで最も重要な部分は、アルゴリズムが2つのサブ配列を維持することを理解することです。

  • 1つのサブ配列はソートされた配列です
  • 別のサブ配列は、ソートされていない配列です

画像-Javaでの選択ソート-Edureka



ソートされたサブ配列は元の配列の先頭に保持されますが、残りの部分はソートされていないサブ配列を形成します。アルゴリズムは、ソートされていない配列からソートされた配列の最後にある最小の要素を移動します。
正確には、これは移動していません。ソートされていない配列の最小要素をソートされていない配列の最初の要素と交換してから、ソートされた配列のインデックスを増やしています。

簡単にしましょう。選択ソートは、最初にソートされていない配列(array [0..n]、最初の反復での完全な配列)内の最小要素を見つけ、それを最初の要素と交換します。次に、並べ替えられていない配列(つまり、array [1..n])で2番目に小さい要素を見つけて、2番目の要素と交換します。アルゴリズムは、配列全体が並べ替えられるまでこれを繰り返します。

したがって、ソートされた配列は反復ごとに0からnに増加し、ソートされていない配列は反復ごとにフォームnを0に縮小します。アルゴリズムは継続的に最小の要素を選択し、それを正しい位置にスワップするため、選択ソートと呼ばれます。
時間計算量はアルゴリズムの効率を分析する上で最も重要な要素の1つであるため、選択ソートの時間計算量を見てみましょう。



  • 最悪の場合の複雑さ:O(n2)
  • ベストケースの複雑さ:O(n2)
  • 平均ケース複雑度:O(n2)

Javaでの選択ソートに関するこの記事に進む

選択ソートアルゴリズム

ステップ1&minusMin_Indexを0に設定します
ステップ2&minus配列内の最小要素を検索します
ステップ3&minusMin_Indexの要素と値を交換します
ステップ4&minus Increment Min_Index to point to next element
ステップ5&minus完全な配列がソートされるまで繰り返します

Javaでの選択ソートに関するこの記事に進む

選択ソートの例

xarray [] = 15 10 99 53 36

array [0…4]で最小の要素を見つけて、最初の要素と交換します
10 15 99 53 36

arr [1…4]で最小の要素を見つけます。 15は次に小さい要素なので、次の要素に移動します。
10 15 99 53 36

初心者のためのmssqlチュートリアル

arr [2…4]で最小要素を見つけて&&それを要素の3番目の要素と交換します
10 15 36 53 99

arr [1…4]で最小の要素を見つけます。 53は次に小さい要素なので、次の要素に移動します。
10 15 36 53 99

最後の要素は、デフォルトでは正しい位置にあります。
10 15 36 53 99

選択ソートアルゴリズムの動作を理解したので、Javaで選択ソートを実装する方法を理解しましょう。

選択 Javaのソートメソッド

void sort(int array []){int n = array.length //(int i = 0iのソートされた配列の境界を増やすためのループ

最後に、選択ソートを実行するための完全なJavaプログラムを見てみましょう。

Javaの選択ソートプログラム

class SelectionSort {//選択ソートメソッドvoidsort(int array []){int n = array.length for(int i = 0 i

出力:

これで、上記のJavaプログラムを実行した後、選択ソートがどのように機能し、Javaで実装するかを理解できたはずです。このブログがあなたにとって有益で付加価値があることを願っています。これで、「Javaでの選択ソート」に関するこの記事は終わりです。詳細を知りたい場合は、チェックアウト 信頼できるオンライン学習会社であるEdurekaによる。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Hibernate&SpringなどのさまざまなJavaフレームワークに加えて、コアJavaコンセプトと高度なJavaコンセプトの両方についてトレーニングするように設計されています。

質問がありますか?このブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。