python 實現基數排序

2021-08-18 18:36:02 字數 466 閱讀 9792

由桶排序改進來的

從最低位到最高位依次桶排序

最後輸出最後排好的列表

def radixsort(list,d):

for k in range(d):#d輪排序

# 每一輪生成10個列表

s=[ for i in range(10)]#因為每一位數字都是0~9,故建立10個桶

for i in list:

# 按第k位放入到桶中

# 按當前桶的順序重排列表

list=[j for i in s for j in i]

return list

if __name__ == '__main__':

a=radixsort([int(x) for x in input().split()], 10)

for x in a:

print(x,end=" ")

排序演算法10 基數排序 Python實現

基數排序是從低位到高位按某一位來排序 所以需要知道列表中的最大值,以獲取它的位數,確定迴圈的次數 每次迴圈需要建乙個長度為10的列表,元素為空列表,下標對應每個數的某一位 即第一次迴圈,如果某個數個位為3,則放入下標為3的列表中 第二次迴圈,按十位進行 每次迴圈結束,遍歷二維列表,將元素依次賦給原列...

c 實現基數排序

以下介紹內容 百科 基數排序的方式可以採用lsd least significant digital 或msd most significant digital lsd的排序方式由鍵值的最右邊開始,而msd則相反,由鍵值的最左邊開始。以lsd為例,假設原來有一串數值如下所示 73,22,93,43,...

基數排序 佇列實現

基數排序是一種不需要比較就能實現排序的演算法思維,主要步驟為分配和收集的過程,重複這個過程於最大數的位數後,排序結束。以下是完全以佇列模擬桶的分配收集過程。標頭檔案 單鏈表部分 typedef int elemtype typedef struct lnode lnode,linklist int ...