選択の並べ替え: ステップバイステップガイド
選択ソートは、単純なソート アルゴリズムです。 リストの未ソート部分から最小の要素を繰り返し検索し、それを先頭に配置します。このプロセスは、リスト全体が並べ替えられるまで続きます。
選択の並べ替えの仕組み
この配列を昇順に並べ替える例を示してみましょう:
反復 1:
目標は、最小の要素を先頭に配置することです。最初の要素が最小であると仮定することから始めます。
現在の最小値と後続の各要素を比較し、より小さい要素が見つかった場合は最小値を更新します。
これは、実際の最小値が特定されるまで続きます。
最後に、最小要素と最初の要素を交換します。
最初の要素がソートされました。 後続の反復では、ソートされていない部分のみが考慮されます。
後続の反復:
このプロセスは、ソートされていない残りの要素ごとに繰り返されます。
アルゴリズムは n-1 回反復します (n は配列の長さです)。 5 回目の反復後 (6 要素配列の場合)、最後の要素が暗黙的に並べ替えられます。
選択ソートの実装 (Java):
<code class="language-java">import java.util.Arrays; public class SelectionSortTest { public static void main(String[] args) { int[] arr = {8, 2, 6, 4, 9, 1}; System.out.println("Unsorted array: " + Arrays.toString(arr)); selectionSort(arr); System.out.println("Sorted array: " + Arrays.toString(arr)); } public static void selectionSort(int[] arr) { int size = arr.length; // Iterate through the array size-1 times for (int i = 0; i < size - 1; i++) { int minIndex = i; // Find the minimum element in the unsorted part for (int j = i + 1; j < size; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // Swap the minimum element with the first unsorted element int temp = arr[minIndex]; arr[minIndex] = arr[i]; arr[i] = temp; } } }</code>
出力:
ソートされていない配列: [8, 2, 6, 4, 9, 1] ソートされた配列: [1, 2, 4, 6, 8, 9]
複雑さの分析:
結論:
Selection Sort の時間計算量は O(n²) であるため、大規模なデータセットでは非効率的になります。 小規模な配列や、パフォーマンスよりもシンプルさが優先される状況に最適です。
以上が選択ソートアルゴリズムを理解する (Java の例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。