经典排序算法(五)--鸽巢排序Pigeonhole Sort
原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了]
鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现次数,如果全部为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相关推荐
- 经典排序算法 - 鸽巢排序Pigeonhole sort
经典排序算法 - 鸽巢排序Pigeonhole sort 原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了] 鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现 ...
- C++Pigeonhole sort鸽巢排序的实现算法(附完整源码)
C++Pigeonhole sort鸽巢排序的实现算法 C++Pigeonhole sort鸽巢排序的实现算法完整源码(定义,实现,main函数测试) C++Pigeonhole sort鸽巢排序的实 ...
- C语言鸽巢排序pigeonhole sort算法(附完整源码)
鸽巢排序pigeonhole sort算法 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,main函数测试) 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,ma ...
- 排序算法(五)——堆排序算法详解及Python实现
本文目录 一.简介 二.算法介绍 三.代码实现 排序算法系列--相关文章 一.简介 堆排序(Heap Sort)算法,属于选择排序类,不稳定排序,时间复杂度O(nlogn). 堆排序由Floyd和Wi ...
- 【排序算法】图解桶排序
目录 前言 桶排序思想 桶排序算法分析 时间复杂度分析 桶排序适用情况 实现一个桶排序 结语 前言 在数据结构与算法的排序中,我们很多人可能更多的熟悉冒泡排序.快速排序.归并排序.可能对堆排序.桶排序 ...
- 排序算法 - 面试中的排序算法总结
排序算法总结 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗,只要熟悉了思想,灵活运用也不 ...
- Java常见排序算法之直接选择排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- 插入排序 php,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
本文实例讲述了PHP排序算法之直接插入排序(Straight Insertion Sort).分享给大家供大家参考,具体如下: 算法引入: 在这里我们依然使用<大话数据结构>里面的一个例子 ...
- js排序算法详解-希尔排序
全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-希尔排序 希尔排序,直接上图: 像这个算法看图理解起来并不是很难,就像比赛一样,1-6一组,2-7一组,每差5 ...
- 《数据结构与算法》实验:排序算法实验比较——选择排序 堆排序
<数据结构与算法>实验和课程Github资源 <数据结构与算法>实验:线性结构及其应用--算术表达式求值 <数据结构与算法>实验:树型结构的建立与遍历 <数据 ...
最新文章
- 上线。我都惊呆了。。。
- java构造方法可以重载吗_Java基础教程之构造器与方法重载
- U3D5.3.5f Monodevelop 仅支持到.NET 3.5
- 图片日志:泛型的作用/hashset的内部实现/常见运行期异常
- Kubernetes入门——Kubernetes实现应用的高可用
- 为了在 Windows 上安装 GCC
- 「日常训练」 Genghis Khan the Conqueror(HDU-4126)
- Sublime中查找重复行的正则表达式
- cookie与Session的区别,以及jQuery怎样操作cookie和Session
- 服装设计与工程_百度百科
- 如何选择合适的离心机,有哪些重要参数——TFN FUP LB6CM 落地式低速大容量冷冻离心机
- Linux裸机开发|LCD背光调节实验
- 变量命名20201106-01
- 几道经典的SQL笔试题目(有答案)
- Echarts中DataView显示Excel表格
- 基于C#winform的学生信息管理与成绩评价系统
- java手机 上网_Java也懂智能! 中低端手机上网小攻略
- jquery实现按钮倒数7秒后才可以点击
- 度娘小技巧(搜索引擎高级搜索)
- Win7只能安装Office2016,OfficeTool安装的2019疑似2016
热门文章
- Linux学习笔记-项目部署01
- fiddler 抓包post请求body参数在jmeter中的书写
- Azure SQL作業
- Group By和Order By的总结
- 利用反射生成SQL语句
- 如何实现一张图片覆盖窗体 - 回复 客栈老人 的问题
- 4.Prometheus 监控技术与实践 --- 服务发现
- 6.业务架构·应用架构·数据架构实战 --- 双轮驱动的技术架构设计
- 31.Linux/Unix 系统编程手册(上) -- 线程:线程安全和每线程存储
- 21. yii 2 library