桶排序

博客 动态
0 207
优雅殿下
优雅殿下 2022-03-05 20:56:11
悬赏:0 积分 收藏

桶排序

桶排序

桶排序的思想是,若待排序的记录的关键字在一个明显有限范围内时,可设计有限个有序桶,每个桶只能装与之对应的值,顺序输出各桶的值,将得到有序的序列。简单来说,在我们可以确定需要排列的数组的范围时,可以生成该数值范围内有限个桶去对应数组中的数,然后我们将扫描的数值放入匹配的桶里的行为,可以看作是分类,在分类完成后,我们需要依次按照桶的顺序输出桶内存放的数值,这样就完成了桶排序。

代码+思路

#include<stdio.h>int main(){		int a[10]={0};	//以10个桶为例,必须将10个桶初始值设为0	int n;			//要输入的数字个数 	scanf("%d",&n);	int i,j;	for(i=0;i<n;i++)	{		int key;		scanf("%d",&key);		a[key]++;	//输入key,key会放在a[key]中,同时a[key]++记录了该桶存放的数据+1 			}	for(i=0;i<10;i++)	//这里表示将这10个桶里面的数全部输出,如果写n,则输出到n桶就停止了,如果有比n要大的数字即存放在了n桶后面就无法输出 		for(j=0;j<a[i];j++)	//小于a[i] ,一个桶里面可能有好几个一样的数字 			printf("%d ",i);	return 0;}

posted @ 2022-03-05 20:49 美的梦里国 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员