Python での選択ソート アルゴリズムの詳細説明
選択ソートは単純ですが非効率なソート アルゴリズムです。その基本的な考え方は、それぞれの項目をソートすることから始めることです。シーケンス内の最小 (または最大) 要素を見つけて、それを並べ替えられたシーケンスの最後に置きます。すべての要素が並べ替えられるまでこのプロセスを繰り返します。
選択による並べ替えの手順は次のとおりです。
選択ソートアルゴリズムを詳しく説明し、具体的なコード例を挙げてみましょう。
まず、選択ソートを実装する関数を定義します:
def selection_sort(arr): n = len(arr) for i in range(n): # 找到未排序序列中的最小元素的索引 min_index = i for j in range(i+1, n): if arr[j] < arr[min_index]: min_index = j # 将最小元素与当前遍历位置的元素交换 arr[i], arr[min_index] = arr[min_index], arr[i]
次に、選択ソートの効果をテストしましょう:
arr = [64, 25, 12, 22, 11] selection_sort(arr) print("排序后的数组:") for i in range(len(arr)): print(arr[i])
上記のコードを実行すると、出力結果は次のようになります。次のように:
排序后的数组: 11 12 22 25 64
選択ソートにより配列が昇順に正常にソートされることがわかります。
選択ソートの時間計算量は O(n^2) です。ここで、n はソートされるシーケンスの長さです。これは、ソートされていないシーケンス内のすべての要素を走査して最小 (または最大) の要素を見つける必要があるたびに、n 回の比較を実行する必要があるためです。合計 n-1 ラウンドの走査を実行する必要があるため、時間計算量は O(n^2) になります。
選択ソートは不安定なソート アルゴリズムです。つまり、同じ要素の相対的な順序が変わる可能性があります。これは、要素の位置を連続的に入れ替えることで選択ソートを実現しているためです。たとえば、シーケンス [3, 1, 3] の場合、選択ソート アルゴリズムを使用してソートした後の考えられる結果は [1, 3, 3] であり、元は同一だった要素 3 の相対位置が変更されています。
選択による並べ替えは効率的ではありませんが、その実装はシンプルで直感的です。ソートするシーケンスが小さい場合や安定性の要件が高くない場合など、特定の場合には、選択ソートを単純なソート方法として使用できます。
要約すると、選択ソートは、ソートされていないシーケンス内で最小 (または最大) の要素を継続的に見つけて、それを現在のトラバース位置の要素と交換することによってソートを完了するアルゴリズムです。実装は単純ですが、時間計算量は高く、不安定です。実際のアプリケーションでは、選択ソートの使用シナリオは比較的限定されています。
以上がPythonでの選択ソート実装の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。