如陣列:
排序思想:
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 過程,...