博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经典排序算法 - 鸽巢排序Pigeonhole sort
阅读量:6939 次
发布时间:2019-06-27

本文共 1196 字,大约阅读时间需要 3 分钟。

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

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

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

例如

var pigeonHole = new int[100];

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

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

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

参考

代码仅供参考,欢迎谌误

/// 鸽巢排序        ///         /// 待排数组        /// 待排数组中的最大数,如果可以指定的话        /// 
static int[] pogeon_sort(int[] unsorted, int maxNumber = 10) { int[] pogeonHole = new int[maxNumber + 1]; foreach (var item in unsorted) { pogeonHole[item]++; } return pogeonHole; /* * pogeonHole[10] = 4; 的含意是 * 在待排数组中有4个10出现,同理其它 */ } static void Main(string[] args) { int[] x = { 99, 65, 24, 47, 47, 50, 99, 88, 66, 33, 66, 67, 31, 18, 24 }; var sorted = pogeon_sort(x, 99); for (int i = 0; i < sorted.Length; i++) { for (int j = 0; j < sorted[i]; j++) { Console.WriteLine(i); } } Console.ReadLine(); }

  

转载于:https://www.cnblogs.com/kkun/archive/2011/11/23/pogeon_sort.html

你可能感兴趣的文章
awk工具
查看>>
mysql 常用日期处理函数
查看>>
使用python进行数据的采集 编辑 删除
查看>>
布尔类型及return 严重程度
查看>>
解决springboot程序员的一点小困惑,nginx的反向代理
查看>>
Java虚拟机基本结构的简单记忆
查看>>
hibernate查询返回结果值为实体时接收方法
查看>>
七牛云 ssl免费证书申请
查看>>
基于结构化平均感知机的分词器Java实现
查看>>
比较好的中文分词方案汇总推荐
查看>>
Chrome本地安装Metamask
查看>>
Tomcat介绍 (资源 )
查看>>
【2018.06.28学习笔记】【linux高级知识 17.1-17.5】
查看>>
IPFS是什么?
查看>>
2.配置IP与网络问题排查
查看>>
机器学习:从入门到晋级
查看>>
JPA的工具类
查看>>
Java 多线程编程核心技术 笔记
查看>>
ComponentOne 2019V1更新亮点之ASP.NET MVC篇
查看>>
Java程序员应该掌握哪些东西?
查看>>