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