日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

桶排序算法c语言10个数组,桶排序算法

發布時間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 桶排序算法c语言10个数组,桶排序算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

//2.21 桶排序

#include

#include

#define SIZE 100

void bucket_sort(unsigned *,int);//桶排序函數的原型

void print(unsigned *,int);//打印函數的原型

int main()

{

unsigned array[SIZE];

int i=0;

//為數組元素隨機賦值

for(i=0;i

array[i]=rand();

printf("排序前\n");

print(array,SIZE);

//排序

bucket_sort(array,SIZE);

printf("排序后\n");

print(array,SIZE);

return 0;

}

void bucket_sort(unsigned * arr,int len)

{

unsigned *buckets[10];//指針數組

unsigned n=1;//用于取整數各位上的值

int index;//數組下標計數索引

int indexs[10];//各個桶下標計數索引

int i,j;

//分配動態內存作為桶

for(i=0;i<10;++i)

buckets[i]=(unsigned *)malloc(sizeof(unsigned)*len);

while(1)

{

//計數索引清零

index=0;

for(i=0;i<10;++i)

indexs[i]=0;

//數組至桶

for(i=0;i

buckets[arr[i]/n%10][indexs[arr[i]/n%10]++]=arr[i];

//桶至數組

for(i=0;i<10;++i)

for(j=0;j

arr[index++]=buckets[i][j];

//為取元素的下一位做準備

n*=10;

//判斷是否該結束

for(i=0;arr[i]

if(i==len) break;

}

//釋放動態內存

for(i=0;i<10;++i)

free(buckets[i]);

}

void print(unsigned * arr,int len)

{

int i=0;

for(i=0;i

{

printf("%8d",arr[i]);

//5個元素一行

if((i+1)%5==0)

printf("\n");

}

}

總結

以上是生活随笔為你收集整理的桶排序算法c语言10个数组,桶排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。