演算法篇 十大經典排序演算法之基數排序

2021-10-10 20:12:50 字數 1186 閱讀 7063

基數排序和計數排序諧音,這裡不要搞錯了。但是這兩種演算法都有只能對整數排序的缺點。

基數排序是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。由於整數也可以表達字串(比如名字或日期)和特定格式的浮點數,所以基數排序也不是只能使用於整數。

("原陣列: "

, arr)

;radixsort

(arr)

;print

("排序後的陣列: "

, arr);}

private

static

void

radixsort

(int

arr)

}//從個位開始,對陣列進行排序

for(exp =

1; max / exp >

0; exp *=10)

//更改buckets[i],

for(

int i =

1; i <

10; i++

)//將資料儲存到臨時陣列temp中

for(

int i = arr.length -

1; i >=

0; i--

)//將有序元素temp賦給arr

system.

arraycopy

(temp,

0, arr,

0, arr.length);}

}private

static

void

print

(string str,

int[

] arr)

else

if(i == arr.length -1)

else

} system.out.

println();}}

基數排序和計數排序、桶排序,都在利用桶。但是基數排序是根據元素的位數來分配桶的,然後根據桶排序

o(n*k)

優點:穩定

缺點:嚴重依賴於額外的儲存空間

較小範圍內的排序演算法

十大經典排序演算法 基數排序

一 演算法複雜度 二 實現流程 1 尋找最長元素的位的數量 2 按照最低位值的大小進行排序,然後再按照次高位的值排序 3 直到每乙個位都比較之後就能得到最終的排序結果 三 實現 import numpy as np def radix sort arr max val arr 0 獲取最大值 max...

十大經典排序演算法(十 基數排序)

基數排序是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。基數排序有兩種方法 這三種排序演算法都利用了桶的概念,但對桶的使用方法上有明顯差異 1 ar counter 2function radixsort arr,maxdigit 11counter bu...

十大經典排序演算法之基數排序 python

原理 a 1,20,36,44,6,9,102,86,94,5 乙個即將排序的陣列a,準備一排0 9依次排好序的桶,先判斷a陣列中每個元素個位數的值,然後填入對應的桶裡,填完之後再從左到右依次從桶裡取出來 接著對新排好序的陣列從十位判斷,位數不夠預設為0,以此迴圈,直到a陣列中最大的元素的最高位排完...