python之基數排序

2021-09-10 03:48:59 字數 887 閱讀 8689

基數排序:將整數按位數切割成不同的數字,然後按每個位數分別比較排序。

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...

演算法之基數排序

基數排序思想 利用個十百千等位數數字進行排序,不經過資料之間比較,以下 純手擼,實現起來還是比較簡單的,不過是第一次實現,不追求效率,只求實現。真個實現主要邏輯分為兩步,第一步把原始資料按照位數大小分配到二維陣列中,第二步再把二維陣列中資料按順序取出到原始陣列中,完成一次各位排序 接下來就是迴圈,依...