ソートの選択


1.説明


選択ソートは、ランダム・データの最小値を検索し、順番にソートするアルゴリズムです.
写真ソース:https://github.com/GimunLee

  • ランダムデータから最初のインデックスを選択し、最初のインデックスの値を最大値として宣言します.

  • 2番目のインデックスの値を、最高値として定義された値と比較します.
    1)2番目のインデックスの値が最大値より大きい場合、2番目のインデックスから3番目のインデックスに移動します.
    2)2番目のインデックスの値が最大値より小さい場合、最大値を2番目のインデックスの値として宣言します.

  • 3番目のインデックスの値を、最高値として定義された値と比較します.
    1)3番目のインデックスの値が最大値より大きい場合は、3番目のインデックスから4番目のインデックスに移動します.
    2)3番目のインデックスの値が最大値より小さい場合、3番目のインデックスの値として最大値を宣言します.

  • 上記の手順を繰り返し、定義した値を最初のインデックスの値と最高値に置き換えます.

  • 次に、2番目のインデックスを選択し、上記の手順を繰り返します.
  • このアルゴリズムは容易に実装できるが,時間的複雑さ(O(n^2)の点では効率が悪い.また、ランダムデータに同じ値がある場合、相対位置が変化する可能性があるため、ソートは不安定です.

    2.コード

    for i in range(len(array)):
        minIdx = i
        for j in range(i+1, len(array)):
            if array[minIdx] > array[j]:
                minIdx = j
        
        array[i], array[minIdx] = array[minIdx], array[i]

    3.参考

  • https://blog.naver.com/ndb796/221226800661
  • https://github.com/GimunLee