基數排序:將整數按位數切割成不同的數字,然後按每個位數分別比較排序。
1.先將每個數字按照個位數排序
2. 再將每個數字按照十位數排序
3. 按照這樣的方式排至最高位
將無序數列變有序
# -*- coding:utf-8 -*-
defradixsort
(series,digit)
: a =
0while a < digit:
bucket =[[
],,,
,[],
,,,[
],]for i in
range
(len
(series)):
if a ==0:
number = series[i]%10
else
: number = series[i]
//10
**a%
10 bucket[number]
) series.clear(
)for j in
range
(len
(bucket)):
for k in
range
(len
(bucket[j]))
:[k]
) a +=1
data =
[355
,872,85
,794
,337
,124
,433,99
,245
,408
,156
,816,3
]radixsort(data,3)
print
(data)
排序演算法之python基數排序
排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個鍵上排序,前乙個鍵排序的結果可以為後乙個鍵排序所用。基數排序就是這樣,先按低位排序,逐次按高位排序,低位排序後元素的順序在高位也相同時是不會改變的。基數排序是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別...
基數排序之重寫
前面博文的基數是基本按課本思路寫的,本篇按 分配 收集 兩個概念在不翻教材情況下再重寫的,以此檢查自己完全理解了基數排序概念。include include include define maxsize 30 typedef struct rcell typedef struct rlist voi...
演算法之基數排序
基數排序思想 利用個十百千等位數數字進行排序,不經過資料之間比較,以下 純手擼,實現起來還是比較簡單的,不過是第一次實現,不追求效率,只求實現。真個實現主要邏輯分為兩步,第一步把原始資料按照位數大小分配到二維陣列中,第二步再把二維陣列中資料按順序取出到原始陣列中,完成一次各位排序 接下來就是迴圈,依...