基數排序(桶排序)

2021-10-06 04:29:00 字數 1116 閱讀 8016

思想:先把這組資料的個位排有序,再把十位排有序,再排百位、千位…

#include

#include

#include

#include

void

showarr

(int arr,

int len)

printf

("\n");

}int

getmaxnumfin

(int arr,

int len)

//找陣列中最大數,並求出最大數的位數

}printf

("max:%d\n"

,max)

;while

(max !=0)

return count;

}int

getfinnumber

(int val,

int pos)

//給出乙個資料,求出該資料對應位數的數字

void

radix

(int arr,

int len,

int fin)

;//每個桶中可插入元素的下標,當前桶中的元素

int arrindex =0;

int buckectindex =0;

for( i; i <

10;i++

)for

(i =

0; i < len; i++

)for

( i =

0; i <

10; i++)}

for( i =

0; i <

10; i++)}

void

radixsort

(int arr,

int len)

}int

main()

;int len =

sizeof

(arr)

/sizeof

(arr[0]

);showarr

(arr,len)

;radixsort

(arr,len)

;showarr

(arr,len)

;}

基數排序(桶排序)

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

基數排序 桶排序

1.基數排序又稱桶排序,具體思想就是將數值當成陣列的下標儲存。2.將所有數值拿出個位來比較,例如值為m的就存入下標為m的陣列中。3.將比較後的陣列拿出即為按個位排序好的陣列,再將這個排序好的陣列按十位排序。4.比較完個十百千所有位數以後即排序完成。兩種 實現思路都是一樣的,實現方式1可直接改寫為c或...

桶排序 基數排序

c 實現的 桶排序 採用了模板技術。底層資料結構是 std map 其本質是優先佇列。時間複雜度是o m n 其中 m 是資料範圍的最大值,n 是資料量。額外的,當 m o n 時,時間複雜度是 o n include include using namespace std template voi...