基數排序(桶排序)

2021-10-04 05:31:30 字數 758 閱讀 4338

1。什麼是基數排序(radix sort)?

基數排序 屬於分配式排序(distribution sort),又稱「桶排序」(bucket sort),它是通過鍵值的各個位的值,將要排序的元素分配至某些「桶」中,達到排序的作用。

2.它和歸併一樣,屬於穩定型演算法。

public void radixsort(int arr) 

}//判斷最大數是幾位數

int maxlength=(max+"").length();

//定義乙個二維陣列,表示10個桶,每個桶就是乙個一位陣列

/*說明:

1.二維陣列包含10個一維陣列;

2.為了防止一位陣列在存放數時溢位,大小定位arr.length

3.明確:基數排序是以時間換空間的經典演算法

*/int bucket=new int[10][arr.length];

//使用乙個一維陣列,來確定桶裡世紀放了多少個數

int bucketcount=new int[10];

for(int i=0,n=1;i//按照桶的順序,(一維陣列的下標一次取出,放入到原陣列中)

int index=0;

for(int k=0;k}

//第i+1輪處理完後,將每個bucketcount[k]=0!!

bucketcount[k]=0;}}

// system.out.println(arrays.tostring(arr));

}

基數排序(桶排序)

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

基數排序 桶排序

1.基數排序又稱桶排序,具體思想就是將數值當成陣列的下標儲存。2.將所有數值拿出個位來比較,例如值為m的就存入下標為m的陣列中。3.將比較後的陣列拿出即為按個位排序好的陣列,再將這個排序好的陣列按十位排序。4.比較完個十百千所有位數以後即排序完成。兩種 實現思路都是一樣的,實現方式1可直接改寫為c或...

桶排序 基數排序

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