Pythonカウントソート

カウントソートの中核は、入力されたデータ値をキーに変換し、それらを追加の配列スペースに格納することです。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
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です