data
1の位を対象としてバケットソートを行う
バケット
0 から 9 の入れ物
tmp
ソート完了
phase 初期化
桁 -
i -
現在値 -
digit -
bucket -
tmp 0
残りステップ 0
通常
現在注目
対象bucket
tmpへ追加済み
赤: 注目桁
基数ソートのコード
1の位 → 10の位 → 100の位 の順で、前の桁で決まった順序を保ったまま並べ替えます。
- 1def radix_sort(data):
- 2 for exp in [1, 10, 100]:
- 3 buckets = [ [] for _ in range(10) ]
- 4 for x in data:
- 5 digit = (x // exp) % 10
- 6 buckets[digit].append(x)
- 7 tmp = []
- 8 for bucket in buckets:
- 9 for x in bucket:
- 10 tmp.append(x)
- 11 data = tmp[:]
- 12 return data
buckets の状態
[[], [], [], [], [], [], [], [], [], []]
tmp の状態
[]