基數排序是按照低位先排序,然後收集;再按照高位排序,然後再收集;依次類推,直到最高位。有時候有些屬性是有優先順序順序的,先按低優先順序排序,再按高優先順序排序。最後的次序就是高優先順序高的在前,高優先順序相同的低優先順序高的在前。
演算法步驟
將所有待比較數值(正整數)統一為同樣的數字長度,數字較短的數前面補零
從最低位開始,依次進行一次排序
從最低位排序一直到最高位排序完成以後, 數列就變成乙個有序序列
* 特點:
平均時間複雜度是o(n*k)
最壞時間複雜度是o(n*k)
最好時間複雜度是o(n*k)
空間複雜度是o(n+k)
穩定性為穩定
* @param args
*/public
static
void
main
(string[
] args)
;int
sort =
sort
(jishu2)
; system.out.
println
(arrays.
tostring
(sort));
}public
static
int[
]sort
(int
sourcearray)
/** * 獲取最高位數
*/private
static
intgetmaxdigit
(int
arr)
private
static
intgetmaxvalue
(int
arr)
}return maxvalue;
}private
static
intgetnumlenght
(long num)
int lenght =0;
for(
long temp = num; temp !=
0; temp /=10)
return lenght;
}private
static
int[
]radixsort
(int
arr,
int maxdigit)
int pos =0;
for(
int[
] bucket : counter)}}
return arr;
}private
static
int(
int[
] arr,
int value)
十大經典排序演算法 基數排序
一 演算法複雜度 二 實現流程 1 尋找最長元素的位的數量 2 按照最低位值的大小進行排序,然後再按照次高位的值排序 3 直到每乙個位都比較之後就能得到最終的排序結果 三 實現 import numpy as np def radix sort arr max val arr 0 獲取最大值 max...
十大經典排序演算法(十 基數排序)
基數排序是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。基數排序有兩種方法 這三種排序演算法都利用了桶的概念,但對桶的使用方法上有明顯差異 1 ar counter 2function radixsort arr,maxdigit 11counter bu...
十大經典排序演算法之基數排序 python
原理 a 1,20,36,44,6,9,102,86,94,5 乙個即將排序的陣列a,準備一排0 9依次排好序的桶,先判斷a陣列中每個元素個位數的值,然後填入對應的桶裡,填完之後再從左到右依次從桶裡取出來 接著對新排好序的陣列從十位判斷,位數不夠預設為0,以此迴圈,直到a陣列中最大的元素的最高位排完...