選択並べ替えアルゴリズムは、配列を並べ替えられた部分と並べ替えられていない部分の 2 つの部分に分割します。最初は、ソートされた部分は空で、ソートされていない部分にはすべての要素が含まれています。このアルゴリズムは、未ソート部分から最小 (またはソート順序によっては最大) の要素を見つけて、それを未ソート部分の最初の要素と交換することによって機能します。このプロセスは、配列全体がソートされるまで続きます。
#Suppose we have the following array: arr = [64, 25, 12, 22, 11]
最初のパス後の配列: [11, 25, 12, 22, 64]
2 回目のパス後の配列: [11, 12, 25, 22, 64]
3 回目のパス後の配列: [11, 12, 22, 25, 64]
最終的にソートされた配列: [11, 12, 22, 25, 64]
def selection_sort(arr): # Traverse through all array elements for i in range(len(arr)): # Find the minimum element in the remaining unsorted part min_index = i for j in range(i 1, len(arr)): if arr[j]ソートされた配列: [11, 12, 22, 25, 64]
選択ソートの時間計算量:
ベストケース: O(n²)
平均ケース: O(n²)
最悪の場合: O(n²)
選択並べ替えは小さなデータセットに対しては良好に実行されますが、時間計算量が O(n²) であるため、より大きな配列には理想的ではありません。ただし、実装は簡単で、Selection Sort が導入されているため (追加のメモリは必要ありません)、メモリが懸念される場合に役立ちます。
利点:
理解して実装するのが簡単です。
小さなリストではうまく機能します。
配列を所定の位置でソートするため、追加のメモリは必要ありません。
欠点:
O(n²)時間の複雑さのため、大規模なデータセットの場合は非効率的です。
これは安定した並べ替えアルゴリズムではありません。つまり、等しい要素が互いに対する相対的な順序を維持できない可能性があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3