カウントソートの中核は、入力されたデータ値をキーに変換し、それらを追加の配列スペースに格納することです。1種類の線形時間複雑性のソートとして、カウントソートでは、入力データが特定の範囲の整数である必要があります。
実例
def countSort(arr):
output = [0 for i in range(256)]
count = [0 for i in range(256)]
ans = ["" for _ in arr]
for i in arr:
count[ord(i)] += 1
for i in range(256):
count[i] += count[i-1]
for i in range(len(arr)):
output[count[ord(arr[i])]-1] = arr[i]
count[ord(arr[i])] -= 1
for i in range(len(arr)):
ans[i] = output[i]
return ans
arr = "wwwceodatacom"
ans = countSort(arr)
print ( "文字配列のソート %s" %("".join(ans)) )
上記のコードを実行した結果は次のとおりです。
文字配列のソート aaccdetoomwww
コメントを残す