基數排序(MSD)

2021-10-06 15:04:40 字數 972 閱讀 5559

#include

#include

#include

#include

#include

using

namespace std;

intgetnum

(int tmp)

//獲取乙個數的位數

return count;

}int

getmax

(int a,

int size)

//獲取數的最大位數

return maxd;

}void

count_sort

(int a,

int size,

int exp)

//按照特定的某一位進行排序

/* 其中的exp表示獲取乙個數的位數並按照該數在這個位數上的大小進行排序,比如exp=1時按照個位排序,exp=2時按照十位排序......*/;

memset

(buckets,0,

sizeof

(buckets));

for(

int i =

0; i < size; i++

)for

(int i =

1; i <

10; i++

)for

(int i = size-

1; i >=

0; i--

)for

(int i =

0; i < size; i++)}

void

radixsort

(int a,

int size)

//基數排序

}int

main()

radixsort

(a, n)

;for

(int i =

0; i < n; i++

)}

基數排序 MSD(桶排序)

基數排序 radixsort 則是屬於 分配式排序 distributionsort 基數排序法 又稱 桶子法 bucketsort 或binsort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些 桶 中,藉以達到排序的作用,基數排序法是屬於穩定性的排序,其 時間複雜度 為o nlog...

基數排序中的LSD方法和MSD方法

最高位優先 most significant digit first 法,簡稱msd法 先按k1排序分組,同一組中記錄,關鍵碼k1相等,再對各組按k2排序分成子組,之後,對後面的關鍵碼繼續這樣的排序分組,直到按最次位關鍵碼kd對各子組排序後。再將各組連線起來,便得到乙個有序序列。最低位優先 leas...

排序 基數排序

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