原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了]

鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现次数,如果全部为1次或0次那就是桶排序

例如

var pigeonHole = new int[100];

pigeonHole[0]的值表示0的出现次数...

pigeonHole[1]的值表示1的出现次数...

pigeonHole[2]的值表示2的出现次数...

举例

var pigeonHole = new int[10];//10个位置

var A = new int[] { 6, 6, 2, 2, 2, 4, 1, 1, 1, 5, 5, 5, 5, 9 };//待排序数组

foreach (var item in A)

{

pigeonHole[item]++;//如pigeonHole[6]++会执行两次,结果为2

}

鸽巢索引:0 1 2 3 4 5 6 7 8 9

索引次数:0 3 3 0 1 4 2 0 0 1

//顺序输出

for (int i = 0; i < pigeonHole.Length; i++)//索引i就是值

{

//pigeonHole[i]处的值是数字i出现的次数

//如6出现了两次,那么pigeonHole[6] = 2

//0没出现,那么pigeonHole[0] = 0,表示待排数组里没有这个值:0

for (int j = 0; j < pigeonHole[i]; j++)//i出现就次就输出几个

{

Console.WriteLine(i);//1,1,1,2,2,2,4,5,5,5,5,6,6,9

}

}

参考http://hi.baidu.com/wangxvfeng101/blog/item/a2c22560e57260c58cb10d8c.html

经典排序算法(五)--鸽巢排序Pigeonhole Sort相关推荐

  1. 经典排序算法 - 鸽巢排序Pigeonhole sort

    经典排序算法 - 鸽巢排序Pigeonhole sort 原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了] 鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现 ...

  2. C++Pigeonhole sort鸽巢排序的实现算法(附完整源码)

    C++Pigeonhole sort鸽巢排序的实现算法 C++Pigeonhole sort鸽巢排序的实现算法完整源码(定义,实现,main函数测试) C++Pigeonhole sort鸽巢排序的实 ...

  3. C语言鸽巢排序pigeonhole sort算法(附完整源码)

    鸽巢排序pigeonhole sort算法 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,main函数测试) 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,ma ...

  4. 排序算法(五)——堆排序算法详解及Python实现

    本文目录 一.简介 二.算法介绍 三.代码实现 排序算法系列--相关文章 一.简介 堆排序(Heap Sort)算法,属于选择排序类,不稳定排序,时间复杂度O(nlogn). 堆排序由Floyd和Wi ...

  5. 【排序算法】图解桶排序

    目录 前言 桶排序思想 桶排序算法分析 时间复杂度分析 桶排序适用情况 实现一个桶排序 结语 前言 在数据结构与算法的排序中,我们很多人可能更多的熟悉冒泡排序.快速排序.归并排序.可能对堆排序.桶排序 ...

  6. 排序算法 - 面试中的排序算法总结

    排序算法总结 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗,只要熟悉了思想,灵活运用也不 ...

  7. Java常见排序算法之直接选择排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  8. 插入排序 php,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析

    本文实例讲述了PHP排序算法之直接插入排序(Straight Insertion Sort).分享给大家供大家参考,具体如下: 算法引入: 在这里我们依然使用<大话数据结构>里面的一个例子 ...

  9. js排序算法详解-希尔排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-希尔排序 希尔排序,直接上图: 像这个算法看图理解起来并不是很难,就像比赛一样,1-6一组,2-7一组,每差5 ...

  10. 《数据结构与算法》实验:排序算法实验比较——选择排序 堆排序

    <数据结构与算法>实验和课程Github资源 <数据结构与算法>实验:线性结构及其应用--算术表达式求值 <数据结构与算法>实验:树型结构的建立与遍历 <数据 ...

最新文章

  1. 上线。我都惊呆了。。。
  2. java构造方法可以重载吗_Java基础教程之构造器与方法重载
  3. U3D5.3.5f Monodevelop 仅支持到.NET 3.5
  4. 图片日志:泛型的作用/hashset的内部实现/常见运行期异常
  5. Kubernetes入门——Kubernetes实现应用的高可用
  6. 为了在 Windows 上安装 GCC
  7. 「日常训练」 Genghis Khan the Conqueror(HDU-4126)
  8. Sublime中查找重复行的正则表达式
  9. cookie与Session的区别,以及jQuery怎样操作cookie和Session
  10. 服装设计与工程_百度百科
  11. 如何选择合适的离心机,有哪些重要参数——TFN FUP LB6CM 落地式低速大容量冷冻离心机
  12. Linux裸机开发|LCD背光调节实验
  13. 变量命名20201106-01
  14. 几道经典的SQL笔试题目(有答案)
  15. Echarts中DataView显示Excel表格
  16. 基于C#winform的学生信息管理与成绩评价系统
  17. java手机 上网_Java也懂智能! 中低端手机上网小攻略
  18. jquery实现按钮倒数7秒后才可以点击
  19. 度娘小技巧(搜索引擎高级搜索)
  20. Win7只能安装Office2016,OfficeTool安装的2019疑似2016

热门文章

  1. Linux学习笔记-项目部署01
  2. fiddler 抓包post请求body参数在jmeter中的书写
  3. Azure SQL作業
  4. Group By和Order By的总结
  5. 利用反射生成SQL语句
  6. 如何实现一张图片覆盖窗体 - 回复 客栈老人 的问题
  7. 4.Prometheus 监控技术与实践 --- 服务发现
  8. 6.业务架构·应用架构·数据架构实战 --- 双轮驱动的技术架构设计
  9. 31.Linux/Unix 系统编程手册(上) -- 线程:线程安全和每线程存储
  10. 21. yii 2 library