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

本文共 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

你可能感兴趣的文章
Spring+Shiro+CAS整合配置笔记
查看>>
iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.
查看>>
虚拟化厂商VMware、微软和思杰的vGPU支持概述
查看>>
SCVMM2012 SP1 之虚拟机模板的创建
查看>>
用HAproxy+keepalived+mysql Replication 构建基于企业级负载均衡
查看>>
浅谈Horizon DaaS平台 - 崛起的桌面云平台
查看>>
站点选择技术RHI、DNS
查看>>
【转载】Python常用模块之sys
查看>>
bash环境变量的相关内容
查看>>
常用和不常用端口一览表收藏
查看>>
行如风 Angular 初识3
查看>>
Office 365管理员指引 17——Sharepoint 讨论版
查看>>
YUM库与YUM源的配置实例
查看>>
MySQL介绍与语言结构
查看>>
Jconsole远程监控Tomcat
查看>>
关于安装nagios make all时出现问题的解决方法
查看>>
基于Hyper-V3.0搭建XenDesktop7之九 部署虚拟应用之模板准备
查看>>
C++强大的背后
查看>>
Linux 第60,61天 ansible的playbook
查看>>
阿里影业已完成质变,何时量变?
查看>>