1.简介:

从前面的冒泡排序可以发现一个问题,即使只有一个数没排好序,冒泡排序都要把所有相邻的数进行遍历一遍!这样效率就变的很低了!特别是在数非常多时就更加明显!下面就来介绍一种比较高效的排序方法——桶排序

  • 先通过图来了解一下桶排序

注意: 椭圆里面的数,就是用于排序的数!长方形数组就是用来记录同样的数出现了几次。椭圆里面的每个数对应着数组的第几个位置,最后从小到大遍历数组,里面出现的数出现几次打印几次,就可以完成排序

下面还是要结合代码具体感受一下!

2.桶排序:

  • 代码:
 1 static void Main(string[] args)
 2         {
 3             int[] number = new int[100];
 4             Console.WriteLine("有多少个数:");
 5             int num;
 6             if (int.TryParse(Console.ReadLine(), out num))
 7             {
 8                 for (int i = 0; i < num; i++)
 9                 {
10                     int arr = Convert.ToInt32(Console.ReadLine());  //这里主要讲算法就不进行非法值的判断了
11                     number[arr]++;    //这就相当于一个桶,相同的数里面的值就自增1;++是值自增1,
12                 }                     //而不是移向下一个数
13
14             }
15             else
16             {
17                 Console.WriteLine("转换失败");
18             }
19             Console.WriteLine("----------------------------------------");
20             for (int i = 0; i < 100; i++)
21             for (int j = 1; j <= number[i]; j++)
22             {
23                 Console.Write(i+"  ");
24             }
25
26             Console.ReadKey();
27         }

这里主要涉及数组知识,和自增运算符!

3.下面简单补充一下时间复杂度的内容:

桶排序虽然能很高效完成排序!但是从上面的程序可知,非常浪费空间!算法之间没有哪种算法是非常好的,根据实际情况选择!在接下来可以了解一下简单排序(之三)快速排序

转载于:https://www.cnblogs.com/fengxuehuanlin/p/4897006.html

最快最简单的排序(之二)——桶排序(简化版)相关推荐

  1. 《spark技术应用》课程期末考试大作业报告,使用eclipse完成求top值、文件排序、二次排序三个程序的个性化开发。

    ​​​​目录 一.选题的目的及要求... 4 二.设计思路... 4 三.主要内容及关键技术.. 5 四.制作步骤... 5 1.准备工作... 5 1.1在VMware中安装一台Ubuntu64位系 ...

  2. 排序算法:桶排序、计数排序、基数排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...

  3. 排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)

    排序算法之--桶排序 桶排序的工作的原理是将数组分到有限数量的桶子里,而这个有限数量是指多少个呢? 不急,容我细细道来:我们可以先求出这个数组的最大值和最小值,那么桶的数量就是max-min+1咯 为 ...

  4. 常用排序算法(八)桶排序

    桶排序 概要 本章介绍排序算法中的桶排序.内容包括: 1. 桶排序介绍 2. 桶排序图文说明 3. 桶排序实现 3.1  桶排序C实现 3.2  桶排序C++实现 3.3  桶排序Java实现 转载请 ...

  5. java 桶排序_[图解] 桶排序

    桶排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序.选择排序.插入排序.归并排序.快速排序和堆排序都是基于比较的排序,而桶排序提出了一种新的思路,即基于数据状态的排序. 1. 桶排序的 ...

  6. leetcode912. 排序数组 有范围的排序统统用桶排序

    给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0] 输出:[0 ...

  7. c语言桶排序,排序算法之——桶排序

    这是本人的第一篇随笔,为的是分享学习经验,和大家讨论一些算法,以便取得些许进步,也是对学习的总结. 话不多说,下面我会用图文的方式向各位介绍桶排序. 1.主要思想: 桶排序的大体思路就是先将数组分到有 ...

  8. Mapreduce的排序、全排序以及二次排序

    一:背景 Hadoop中虽然有自动排序和分组,由于自带的排序是按照Key进行排序的,有些时候,我们希望同时对Key和Value进行排序.自带的排序功能就无法满足我们了,还好Hadoop提供了一些组件可 ...

  9. python列表字母排序_Python_list(二)列表排序

    list排序 按字母顺序排序 sort() .sort() 按字母排序,再也无法恢复到原来的排列顺序 示范 >>> name = ['congcong', 'yuxi', 'jing ...

  10. 排序算法_桶排序(箱排序)

    一.算法描述 假设有一组长度为N的待排关键字序列K[1....n]. 首先将这个序列划分成M个的子区间(桶). 然后基于某种映射函数 ,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) , ...

最新文章

  1. SQL text字段的替换处理(无法批量更新,写法记录)
  2. 南京大学计算机2010年本科录取名单,2010高考本科录取名单
  3. 量子计算机计算时间复杂度,量子计算复杂性理论综述.PDF
  4. php代码实现对word文件的查找与替换,ThinkPHP5使用phpword实现文件模板字符替换
  5. C++泛型编程实现平衡二叉搜索树AVL
  6. mysql 表字段信息从一张表迁移到另一张表_MySQL(数据库)笔记
  7. Log4j Bug –减慢您的应用程序
  8. android的padding属性,以编程方式获取android:padding属性
  9. Jsoup根据URL加载一个Document
  10. 带你自学Python系列(十七):Python中类的用法(三)
  11. centos java创建文件_CentOS java生成文件并赋予权限的问题
  12. JAVA 集合Null 初始化_springboot使用mybatis-plus表单更新null值问题通用解决方案
  13. linux的jdk、tomcat、tomcat安装等
  14. 打造个人品牌的重要性被高估了
  15. apache + phpStudy 配置vue history模式
  16. 表上作业法matlab解决,MATLAB上机作业.doc
  17. ug计算机环境变量,ug80添加中文环境变量的具体方法
  18. OpenGL渲染YUV420P
  19. JAVA生成随机数工具类
  20. 信息系统与信息化、信息系统开发方法、常规信息系统集成技术

热门文章

  1. 四.Android adb命令(持续更新...)
  2. 常用单词缩写(不断更新)
  3. 利用OpenCV的库函数Sobel和Scharr作图像的边缘检测
  4. asp.net使用mysql教程_在C#程序中使用MYSQL数据库
  5. Logback 配置文件例子
  6. 网上的一篇spring security详解教程,觉得不错,转过来了
  7. 既然安卓是开源的 为何华为要 鸿蒙,安卓靠开源、免费赢得了天下,现在华为鸿蒙也是开源免费的! - 区块网...
  8. C 引用和指针的区别
  9. cocos2d-x环境配置和常见问题
  10. C语言博客作业--嵌套循环