選択ソートを自己実装
By on Oct 18, 2019
- クラス ソート
- データ構造 配列
- 平均計算時間 О(n²)= n(n-1) / 2(固定)
- 最悪計算時間 О(n²)
- 最良計算時間 О(n²)
- バブルソートと比較すると、「比較回数」は同じ。ただし、「交換回数」が少ないので、選択ソートの方が高速。
- 非安定なソート
Selection Sort(選択ソート)
for I := 1 to N
min := I
for J := I+1 to N
if data[J] < data[min] then
min := J
end if
end for
swap(data[I], data[min])
end for
Python
def selection_sort(target):
for i in range(len(target)):
min = i
for j in range(i, len(target)):
if target[j] < target[min]:
min = j
target[min], target[i] = target[i], target[min]
if __name__ == "__main__":
target = [3, 7, 4, 8, 9, 5, 6, 1, 2]
selection_sort(target)
print(target)