基數排序 桶排序

2021-10-22 16:18:33 字數 1311 閱讀 1119

1.基數排序又稱桶排序,具體思想就是將數值當成陣列的下標儲存。

2.將所有數值拿出個位來比較,例如值為m的就存入下標為m的陣列中。

3.將比較後的陣列拿出即為按個位排序好的陣列,再將這個排序好的陣列按十位排序。

4.比較完個十百千所有位數以後即排序完成。

兩種**實現思路都是一樣的,實現方式1可直接改寫為c或c++。

private

int[

] array =

;/**

* 基數排序,先按個位將所有數字按照個位的值放入0-9的二維陣列中,依次取出之後再按十位

* 如此迴圈直至個十百千等等所有位數遍歷完為止

*/private

void

radixsort()

// 判斷是否所有的數值都在0位上,都在0位上則表示排序完成

if(position[0]

== array.length)

int index =0;

for(

int i =

0; i <

10; i++)}

radix = radix *10;

}}

/**

* 基數排序/桶排序

*/public

class

bucktsort

private

void

initbucket()

else

for(

int index =

0; index <

10; index++)}

/** * 獲取最長數字位數

*/private

void

getmaxlength()

continue;}

}public

int[

]sort()

int radix =1;

for(

int index =

0; index < maxlenght; index++

)int originalposition =0;

for(

int key =

0; key <

10; key++)}

initbucket()

; radix *=10;

}return originalarray;

}}

基數排序(桶排序)

1。什麼是基數排序 radix sort 基數排序 屬於分配式排序 distribution sort 又稱 桶排序 bucket sort 它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用。2.它和歸併一樣,屬於穩定型演算法。public void radixsort i...

基數排序(桶排序)

思想 先把這組資料的個位排有序,再把十位排有序,再排百位 千位 include include include include void showarr int arr,int len printf n int getmaxnumfin int arr,int len 找陣列中最大數,並求出最大數的...

桶排序 基數排序

c 實現的 桶排序 採用了模板技術。底層資料結構是 std map 其本質是優先佇列。時間複雜度是o m n 其中 m 是資料範圍的最大值,n 是資料量。額外的,當 m o n 時,時間複雜度是 o n include include using namespace std template voi...