八大排序演算法 之 基數排序(桶排序)

2021-07-11 15:12:20 字數 796 閱讀 2055

如陣列:

排序思想:

1,先按個位上的數字大小順序排列,結果為61--13--296--7--697--458

2,在上述順序的基礎上,按十位上的大小順序排列,結果為:7--13--458--61--296

3,在上述順序的基礎上,按百位上的大小順序排列,結果為:7--13--61--296--458

對於上述,最大數是三位數的陣列,只需進行三趟排序即可得到正確的結果;

排序趟數:3(即最大數的位數)

排序原理:桶排序

**實現如下:

//建乙個方法用來計算10的次冪運算;

public static int pow(int n)

return value;

} //方法主體;

public static void radixsort(int array)

} int maxlen = string.valueof(max).length();

//建立10個桶,

arraylist> list = new arraylist();

for (int i = 0; i < 10; i++)

for (int i = 0; i < maxlen; i++)

//從桶裡把數乙個個按次序拿出來,依次將原來的陣列覆蓋,完成乙個位數的排序

int n = 0;

for (arraylistlist2 : list)

}list2.clear();//用完之後就清空,等待下一次使用

}} }

八大排序之基數排序

個人部落格 建議先看排序綜述,傳送門 資料結構與演算法系列之一 八大排序綜述。基數排序 英語 radix sort 是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。由於整數也可以表達字串 比如名字或日期 和特定格式的浮點數,所以基數排序也不是只能使用於整數...

八大排序之基數排序

開始研究基數排序,還以為很複雜呢,誰知道也挺簡單的,它是一種非比較的排序,首先找到最大的位數,也就是先確定裡面最大的數有幾位,依次對個位,十位,等進行排序,它的原理就是你在對個位的大小進行排序時,算了,還是放圖吧 個位排序 它已經出現了基本有序 相對於十位來說 如,142,157,142也就在157...

八大排序 基數排序

基數排序 將整形10進製按每位拆分,然後從低位到高位依次比較各個位。每次比較完進行排序,直到整個陣列有序 主要分為兩個過程 1 分配,先從個位開始,根據位值 0 9 分別放到0 9號桶中 比如53,個位為3,則放入3號桶中 2 收集,再將放置在0 9號桶中的資料按順序放到陣列中 重複 1 2 過程,...