組み込み開発のためのPython · レッスン 160 / 220

選択ソートを理解する

選択ソートは未整列部分から最小値を探して先頭と交換します。比較回数はO(n²)で、書き込み回数が少ない特性があります。

選択ソートは未整列部分から最小値を探して先頭と交換します。比較回数はO(n²)で、書き込み回数が少ない特性があります。 仕組みだけでなく、検証方法と運用上の注意も具体例で確認します。

基本の考え方

選択ソートは未整列部分から最小値を探して先頭と交換します。比較回数はO(n²)で、書き込み回数が少ない特性があります。

安全に試すための確認

計算量だけでなく入力条件、重複値、空データ、最悪ケースを確かめます。組み込み用途ではメモリ上限と実行時間を実測し、標準ライブラリの利用も検討してください。

コード例

手元のPython環境に貼り付ける前に、使用しているPythonの版と対象ライブラリの対応を確認してください。

values = [29, 10, 14, 37, 13]
for start in range(len(values)):
    smallest = min(range(start, len(values)), key=values.__getitem__)
    values[start], values[smallest] = values[smallest], values[start]
print(values)

手を動かす課題

各反復の開始位置と選ばれた最小値を記録し、安定ソートでない例を作ってください。

参考資料

「データ構造とアルゴリズム」の章一覧へ