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

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

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

例如

var pigeonHole = new int[100];

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

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

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

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

代码仅供参考,欢迎谌误

        /// 鸽巢排序/// </summary>/// <param name="unsorted">待排数组</param>/// <param name="maxNumber">待排数组中的最大数,如果可以指定的话</param>/// <returns></returns>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

经典排序算法 - 鸽巢排序Pigeonhole sort相关推荐

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

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

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

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

  3. 经典排序算法(一) —— Selection Sort 选择排序

    经典排序算法(一) -- Selection Sort 选择排序 文章目录 经典排序算法(一) -- Selection Sort 选择排序 简介 排序过程 实现 复杂度 简介 选择排序是一种简单直观 ...

  4. Java经典排序算法:选择排序,动图演示排序过程

    Java经典排序算法:选择排序,动图演示排序过程 示意动图: public class Main {public static void main(String[] args) {new Main() ...

  5. 【排序算法】选择排序(Selection sort)

    选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...

  6. DSA之十大排序算法第六种:Quick Sort

    快速排序 2019年8月23日17:45:21 之前我们已经分析过 冒泡排序,我建议:当你在看这篇博客的时候,请先回顾 冒泡排序:详见DSA之十大排序算法第一种:Bubble sort 文章目录 一次 ...

  7. 经典排序算法之希尔排序

    排序:希尔排序(算法) 一.简介 希尔排序(Shell Sort)是插入排序的一种算法,是对直接插入排序的一个优化,也称缩小增量排序. 希尔排序是非稳定排序算法. 希尔排序因DL.Shell于1959 ...

  8. 经典白话算法之桶排序

    最快最简单的排序--桶排序 在我们生活的这个世界中到处都是被排序过的.站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序--总之很多东西都 ...

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

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

最新文章

  1. 【springboot】配置
  2. python3.7源码分析-集合(set)
  3. 「日常训练」Skills(Codeforce Round #339 Div.2 D)
  4. 十五、深入Python输入和输出
  5. 【Python】忘记登录密码?遍历数字字母组合密码+模拟提交表单
  6. 05Vue.js快速入门-Vue实例详解与生命周期
  7. java 工厂模式详解_Java设计模式之工厂模式详解
  8. G-SYNC技术是什么
  9. 震惊,CSDN居然可以打出爱心?
  10. bzoj3531: [Sdoi2014]旅行 (树链剖分 动态开点线段树)
  11. win11开机音效设置的方法
  12. Apache Calcite介绍
  13. python协程爬取斗鱼美女图片
  14. docker 清理磁盘
  15. 计算机基础长文档的排版,长文档的排版(说课)重要.ppt
  16. 无代码开发大众化,摆脱Excel轻松管理企业数据
  17. Padavan 路由器的入门级技巧
  18. BC26 计算三角形的周长和面积(海伦公式)
  19. 计算机网络之物理层-频带传输
  20. 智能家居代码构建编写、简单工厂模式、树莓派摄像头视频监控功能实现

热门文章

  1. Appnode php命令找不到,node.js - 找不到Express命令
  2. Verilog初级教程(1)认识 Verilog HDL
  3. 【FPGA】SRIO IP核系统总览以及端口介绍(一)(User Interfaces 之 I/O Port)
  4. 用行为级描述方式实现一个加法器电路(基于ISE的设计)(2输入1位全加器电路)
  5. 使用ISE创建IP核(以加法器的IP核建立为例)
  6. FPGA从Xilinx的7系列学起(4)
  7. Gif(1)-加载视图-交替圆效果
  8. 京东王笑松:7FRESH是“无界零售”理论的业务践行
  9. 由一行文本输入框引发的思考
  10. Jmeter之分布式测试