zoukankan      html  css  js  c++  java
  • 关于排序的算法——桶排序

    介绍:

    桶排序是最简单最快的排序,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),

    最后依次把各个桶中的记录列出来记得到有序序列。

    时间复杂度:O(m+n)

    空间复杂度:O(n * k)

    举个例子:(例子来源于啊哈算法)

    期末考试完了老师要将同学们的分数按照从高到低排序。班上只有 5 个同学,这 5 个同学分别考了 5 分、 3 分、5 分、 2 分和 8 分,

    (满分是 10 分)。接下来将分数进行从大到小排序,排序后是 8 5 5 3 2。你有没有什么好方法编写一段程序,让计算机随机读入 5 个数然后将这

    5 个数从大到小输出?

    解决方法:

     
    按照分数创建一个大小为11的一维数组来表示分数,用数值来表示人数,在数组中表示这个分数相对应的人数
    然后将桶对应的数打印出来。
    代码如下:
    int main()
    {
        int a[11],i,j,t;
        for(i=0;i<=10;i++) //循环11次
        a[i]=0; //初始化为0
        for(i=1;i<=5;i++) //循环读入5个数 通过键盘输入5个数
        {
            scanf("%d",&t); //把每一个数读到变量t中
            a[t]++; //进行计数
        }
          for  (i=0;i<=10;i++) //依次判断a[0]~a[10] 11次
                for(j=1;j<=a[i];j++) //出现了几次就打印几次
                    printf("%d ",i);// 循环5次
           getchar ();getchar();
        //这里的getchar();用来暂停程序,以便查看程序输出的内容
        //也可以用system("pause");等来代替
        return 0;
    }        
     
     
     

    身体是1,财富·名利·是0,没有1有再多的0都没有用!!
  • 相关阅读:
    用自己的话描述wcf中的传输安全与消息安全的区别(一)
    web服务器( nginx )及请求代理
    windows系统安装
    邮箱使用
    常见dos命令总结
    前端技术碰到的陌生单词
    前端工作思考
    table标签详解
    PC 端响应式布局
    HTML标签嵌套规则
  • 原文地址:https://www.cnblogs.com/fanhua666/p/11260806.html
Copyright © 2011-2022 走看看