十 基數排序

2021-10-10 01:23:06 字數 915 閱讀 6738

基數排序的排序思路是這樣的:先以個位數的大小來對資料進行排序,接著以十位數的大小來多數進行排序,接著以百位數的大小,一直到最高位。排到最後,就是一組有序的元素了。不過,他在以某位數進行排序的時候,是用「桶」來排序的。

/**

* 基數排序

*/public

class

radiosort

// 計算最大值是幾位數

int num =1;

while

(max /

10>0)

// 建立10個桶——0-9

arraylist

> bucketlist =

newarraylist

<

>(10

);//初始化桶

for(

int i =

0; i <

10; i++

)// 進行每一趟的排序,從個位數開始排

for(

int i =

1; i <= num; i++

)//合併放回原陣列

int k =0;

for(

int j =

0; j <

10; j++

)//取出來合併了之後把桶清光資料

bucketlist.

get(j)

.clear()

;}}return arr;

}}

時間複雜度:基數排序每一位的比較可以使用線性排序,比如桶排序或者計數排序。每次排序時間複雜度 o(n),那麼如果有 k 位,則時間複雜度為 o(k*n) 。

空間複雜度:空桶占用的空間 + 數列在桶中占用的空間 = o(m+n)。

穩定性:由於其中使用了 list 的資料結構,使得大小相等的兩個元素相對位置不變,是穩定的。

排序 基數排序

基數排序 radix sort 是屬於 分配式排序 distribution sort 基數排序法又稱 桶子法 bucket sort 或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些 桶 中,藉以達到排序的作用。排序思想 首先按照資料的最低位 個位 將資料分配到0 9...

排序 基數排序

1 基數排序 桶排序 介紹 1 基數排序 radix sort 屬於 分配式排序 distribution sort 又稱 桶子法 bucket sort 或bin sort,顧名思義,它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用 2 基數排序法是屬於穩定性的排序,基數...

桶排序 基數排序 計數基數排序 Java

前面已經講述了很多排序演算法,但是他們的排序演算法都是基於兩個值之間的比較,通過決策樹的方法可以證明深度為d的二叉樹則最多有 一些好的排序演算法是可以達到時間複雜度是線性的,桶排序就是其中一種。比如有n個數,但是這些數的最大數不超過m。這個時候就可以定義乙個含有m個元素的陣列 初始值為0 然後遍歷n...