radix sort 不正規的基數排序

2021-10-10 15:35:20 字數 2399 閱讀 9610

不想用鍊錶就用陣列做了,浪費了很多的空間

**看似很長其實很簡單

#include

#include

#include

#include

intdivid

(int number,

int i)

;int

arrangeinput

(char

*initial,

int*number)

;int

main()

;int bucket0[20]

=;int bucket1[20]

=;int bucket2[20]

=;int bucket3[20]

=;int bucket4[20]

=;int bucket5[20]

=;int bucket6[20]

=;int bucket7[20]

=;int bucket8[20]

=;int bucket9[20]

=;int pass;

int remain=0;

int remain=0;

scanf

("%s,"

,initial)

; amount=

arrangeinput

(initial,number)

;//將桶初始化//

for(

int i=

0;i<

20;i++

)scanf

("%d"

,&pass)

;for

(int i=

0;i)//進行pass次移動//}}

else

if(remain==1)

}}else

if(remain==2)

}}else

if(remain==3)

}}else

if(remain==4)

}}else

if(remain==5)

}}else

if(remain==6)

}}else

if(remain==7)

}}else

if(remain==8)

}}else

if(remain==9)

}}}//將原本儲存的資料清空//

for(

int q=

0;q)int c=

0,a=0;

while

(bucket0[c]!=-

1)c=0;

while

(bucket1[c]!=-

1)c=0;

while

(bucket2[c]!=-

1)c=0;

while

(bucket3[c]!=-

1)c=0;

while

(bucket4[c]!=-

1)c=0;

while

(bucket5[c]!=-

1)c=0;

while

(bucket6[c]!=-

1)c=0;

while

(bucket7[c]!=-

1)c=0;

while

(bucket8[c]!=-

1)c=0;

while

(bucket9[c]!=-

1)c=0;

//將桶中的資料儲存到陣列裡,再將桶清空用於下一次的radix sort//

for(

int l=

0;l<

20;l++)}

for(

int i=

0;i)return0;

}//返回個位、十位、百位數//

intdivid

(int number,

int i)

//將輸入轉成整數型儲存進去//

intarrangeinput

(char

*initial,

int*number)

}for

(int i=

0;i(initial[j]

==','

)while

(initial[j]

!=','

&&initial[j]

!='\0'

) sum=sum/10;

number[i]

=sum;

sum=0;

}return amount;

}

基數排序 RadixSort

基數排序 以整形為例 將整形10進製按每位拆分,然後從低位到高位依次比較各個位。主要分為兩個過程 1 分配,先從個位開始,根據位值 0 9 分別放到0 9號桶中 比如53,個位為3,則放入3號桶中 2 收集,再將放置在0 9號桶中的資料按順序放到陣列中 重複 1 2 過程,從個位到最高位 比如32位...

Radix sort 基數排序

有關 gpu並行程式設計 英文 cuda programming a developer s guide to parallel computing with gpus 第六章 中基數排序,其中並行排序的多執行緒排序,由於沒有具體較為詳細的介紹,對於初次接觸多執行緒的人略微困難。本文較為詳細的介紹此...

基數排序 Radix Sort

基數排序是在某種情況下比快速排序還快的排序.當然了,計數排序 counting sort 也有可能比快速排序快.計數排序非常容易理解,時間複雜度是o max a i 如果資料範圍很小的話,計數排序有巨大優勢.而基數排序,則更進一步,對每一位進行計數排序.這樣時間複雜度降為o n log max a ...