← デモ一覧へ戻る

基数ソート手順アニメーション

data 1の位を対象としてバケットソートを行う
バケット 0 から 9 の入れ物
tmp
phase 初期化 - i - 現在値 - digit - bucket - tmp 0 残りステップ 0
通常
現在注目
対象bucket
tmpへ追加済み
赤: 注目桁

基数ソートのコード

1の位 → 10の位 → 100の位 の順で、前の桁で決まった順序を保ったまま並べ替えます。
  1. 1def radix_sort(data):
  2. 2  for exp in [1, 10, 100]:
  3. 3    buckets = [ [] for _ in range(10) ]
  4. 4    for x in data:
  5. 5      digit = (x // exp) % 10
  6. 6      buckets[digit].append(x)
  7. 7    tmp = []
  8. 8    for bucket in buckets:
  9. 9      for x in bucket:
  10. 10        tmp.append(x)
  11. 11    data = tmp[:]
  12. 12  return data
初期状態
buckets の状態
[[], [], [], [], [], [], [], [], [], []]
tmp の状態
[]