選択ソートアルゴリズム


dev.to の ""タブを見てみましょう.ポータルで最も人気のある記事のリストがあります.表示するには、まずすべての記事を閲覧数で並べ替える必要があります.これを行うには、Selection ソート アルゴリズムを使用できます.

このアルゴリズムの原理は非常に単純です.記事のリストを検索して閲覧数が最も多いものを探し、それを新しく作成したリストの最初のインデックスにコピーして、古いリストからこの項目を削除します.ソートされたリストが得られるまで、これらの手順を繰り返します.

def findBiggest(arr):
    biggest = arr[0]
    biggest_index = 0

    for i in range(1, len(arr)):
        if arr[i] > biggest:
            biggest = arr[i]
            biggest_index = i
    return biggest_index


def selectionSort(arr):
    newArr = []

    for i in range(len(arr)):
        biggest = findBiggest(arr)
        newArr.append(arr.pop(biggest))
    return newArr


print(selectionSort([51, 32, 63, 2, 101])) # [101, 63, 51, 32, 2]


アルゴリズムはシンプルですが、大量のデータでは非常に遅いため、dev.to 開発者は確かに高速なものを使用していました.リスト内のすべての要素を検索する必要があるため、Big O 表記で指定されたこのアルゴリズムの速度は O(n2) です.

Big O 記法についての詳細は、以前の投稿で読むことができます