選択の並べ替え: ステップバイステップガイド
選択ソートは、単純なソート アルゴリズムです。 リストの未ソート部分から最小の要素を繰り返し検索し、それを先頭に配置します。このプロセスは、リスト全体が並べ替えられるまで続きます。
選択の並べ替えの仕組み
この配列を昇順に並べ替える例を示してみましょう:
反復 1:
目標は、最小の要素を先頭に配置することです。最初の要素が最小であると仮定することから始めます。
現在の最小値と後続の各要素を比較し、より小さい要素が見つかった場合は最小値を更新します。
これは、実際の最小値が特定されるまで続きます。
最後に、最小要素と最初の要素を交換します。
最初の要素がソートされました。 後続の反復では、ソートされていない部分のみが考慮されます。
後続の反復:
このプロセスは、ソートされていない残りの要素ごとに繰り返されます。
アルゴリズムは n-1 回反復します (n は配列の長さです)。 5 回目の反復後 (6 要素配列の場合)、最後の要素が暗黙的に並べ替えられます。
選択ソートの実装 (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; } } }
出力:
ソートされていない配列: [8, 2, 6, 4, 9, 1] ソートされた配列: [1, 2, 4, 6, 8, 9]
複雑さの分析:
- 時間計算量: すべてのケース (最良、平均、最悪) で O(n²)。 ネストされたループは、入力順序に関係なく、常に固定回数実行されます。
- 空間の複雑さ: O(1)。 これはインプレース アルゴリズムであり、一定の追加スペースが必要です。
結論:
Selection Sort の時間計算量は O(n²) であるため、大規模なデータセットでは非効率的になります。 小規模な配列や、パフォーマンスよりもシンプルさが優先される状況に最適です。
以上が選択ソートアルゴリズムを理解する (Java の例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版
ビジュアル Web 開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
