桶排序

作者: 幻想无极 | 来源:发表于2017-06-27 00:14 被阅读12次
    #include <stdio.h>
    
    int main(int argc, const char * argv[]) {
        
        //book1维数组,t:输入的几个数的下标,n:总数量
        int book[1001],i,j,t,n;
        for(i = 0;i <= 1000;i++){
            //初始为0
            book[i] = 0;
        }
        //输入一个数n,表示接下来有n个数
        scanf("%d",&n);
        
        for (int i = 0; i < n; i++) {
            //把每一个数读到变量t中
            scanf("%d",&t);
            //进行计数,对编号为t的桶放一个小旗子
            book[t]++;
        }
    //从高到低
    //    for(i = 1000;i >= 0;i--){
    //        printf("%d ",i);
    //        
    //        //j=1,book数组中默认的装的是0所以正常再没有录入数字的位置j>book[i],只有录入了数字的才会打印信息
    //        for(j = 1;j <= book[i];j++){
    //            printf("\n------%d\n ",i);
    //            printf("-------个数%d\n",book[i]);
    //        }
    //    }
    //从低到高
        for(i = 0;i <= 1000;i++){
            printf("%d ",i);
            
            //j=1,book数组中默认的装的是0所以正常再没有录入数字的位置j>book[i],只有录入了数字的才会打印信息
            for(j = 1;j <= book[i];j++){
                printf("\n------%d\n ",i);
                printf("-------个数%d\n",book[i]);
            }
        }
        
        getchar();
        
        return 0;
    }
    
    

    原理:创建一个总个数的数组,将里面的元素都置为0,输入总个数范围内的数,将下标为该数的元素值+1,排序的时候判断数组总下标为输入的一些数的元素值是否大于1,如果大于则执行,则完成了简单桶排序

    相关文章

      网友评论

          本文标题:桶排序

          本文链接:https://www.haomeiwen.com/subject/mydscxtx.html