排序演算法 基數排序(桶排序)

2021-07-29 16:49:20 字數 1086 閱讀 3815

基數排序(公升序)是一種非比較式的排序方式,和之前博文中提到的快排,氣泡排序,插入排序這些排序演算法不一樣,它沒有使用任何交換的方式,那麼又是通過什麼方式進行的排序呢?它的基本思想是通過分配的方法把元素從小到大分配,以到達排序的作用。

1.建立10個桶,分別用來放對應的數字;

2.按照最低位(個位)的數字分配到相應的桶裡面;

3.把桶裡的數字依次放回陣列;

4.按照次低位的數字分配到相應的桶裡面;

5.把桶裡的數字依次放回陣列;

6.重複上面工作直到每個數字的每個位都被訪問到。

桶排序是一種十分高效的排序演算法,時間複雜度為o(n),很多時候比快排還要快,而且桶排序十分穩定,唯一的缺點是他的空間複雜度高於其他幾種排序。

對個位分配

對十位分配

對百位分配

基數排序(桶排序)

1。什麼是基數排序 radix sort 基數排序 屬於分配式排序 distribution sort 又稱 桶排序 bucket sort 它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用。2.它和歸併一樣,屬於穩定型演算法。public void radixsort i...

基數排序(桶排序)

思想 先把這組資料的個位排有序,再把十位排有序,再排百位 千位 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或...