好きをブチ抜く

「好き」をブチ抜く

本、映画、科学、哲学、心理、すごい人の考え方など。あらゆる情報を編集したい。

基本ソートをpythonで

バブルソート

def bubble_sort(array):
    n = len(array)
    for i in range(n-1):
        for j in range(n-1,i,-1): #開始、終了、ステップ
            '''
            iが左端。つまり最小値。左端であるiをソート済みにし、
            開始n-1つまり右端に戻る。
            '''
            if array[j] < array[j-1]:
                tmp = array[j]
                array[j] = array[j-1]
                array[j-1] = tmp

選択ソート

def selection_sort(array):
    n = len(array)
    for i in range(0, n-1):
        #最小値のインデックスを保持
        min = i
        for j in range(i+1, n):
            if array[min] > array[j]:
                min = j
        tmp = array[min]
        array[min] = array[i]
        array[i] = tmp
    return array


挿入ソート

def iSort(a):
    for i in range(1, len(a)):
        for j in range(i, 0, -1):#今いるiから左に(だから-1)j回比較する
            if a[j] >= a[j-1]:
                break
            else:
                a[j], a[j-1] = a[j-1], a[j]
    return a