欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简化版桶排序

程序员文章站 2022-03-03 08:40:47
...

简化版桶排序

  • 用一个一维数组就可以解决的数字排序问题
  1. 申请一个int数组。数组要求:有多少数就申请多大的数组,例如10个数排序就要int[10]数组;
  2. 将数组内每个元素都初始化为0;
  3. 读取输入的数i,放在int[i]中,如1放在int[1]中,5放在int[5]中,同一个数出现多次就在int[]数组中进行++操作(存储每个数的次数)
  4. 按顺序打印数组中的数,其中每个数出现了几次就打印几次。如int[5]中存储的值为3,就打印5 5 5.

//对0-1000的整数进行排序,需要数组大小为1001.

#include <stdio.h>
int main(){
    int book[1001],i,j,t,n;
    
    //数组初始化为0
    for(i=0;i<=1000;i++)
    book[i]=0;
    scanf("%d",&n); //输入一个数,代表对n个数进行排序
    
    //读入键盘输入的n个数,进行桶排序
    for(i=1;i<=n;i++){
        scanf("%d",&t);
        book[t]++; //对每个数出现的个数进行统计
    }
    
    for(i=1000;i>=0;i--){ //从大到小打印
        for(j=0;j<=book[i];j++) //出现几次就打印几次
            printf("%d",i);
    }
    
    return 0}
相关标签: 桶排序