Pythonで選択ソートを実現


ソートの選択
実装の考え方:1つのシーケンスを2つの部分に分けて、前は秩序シーケンスで、後は無秩序シーケンスで、後の無秩序シーケンスの中の最小値を前の秩序シーケンスに追加し続け、後の無秩序シーケンスに値がないまで、最初の値を秩序シーケンスとして作成します.
コード実装:
arr = [7, 4, 3, 67, 34, 1, 8]  # length = 7

def select_sort(arr):
    n = len(arr)
    for j in range(n-1):
        min = j
        for i in range(j+1, n):
            if arr[min] > arr[i]:
                min = i
        arr[min], arr[j] = arr[j], arr[min]
select_sort(arr)
print(arr) # [1, 3, 4, 7, 8, 34, 67]

キーはやはり二重ループのパラメータの配置で、外層ループでは0~n-1のシーケンスを取得し、その後、内部ループのiの開始値を1回も幻なく加算し、j+1=n-1のときにループが終了するまで、最後の数のときは比較する必要がないため、また最小値位置を交換するときは、内層ループが終了した後に行う.時間複雑度:O(n^2)