Python カウントソート

Document 对象参考手册Python3 例

カウントソートの核となるのは、入力されたデータ値をキーに変換し、追加で確保した配列空間に格納することです。線形時間計算量のソートとして、カウントソートは入力データが確定した範囲の整数であることを要求します。

例

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 = "wwwサンプルcom" ans = countSort(arr) print ( "文字配列ソート %s" %("".join(ans)) )

上記のコードを実行すると、出力結果は以下の通りです:

符数组排序 bcmnoooruwww

Document 对象参考手册Python3 例

その他の拡張