美文网首页
计数排序

计数排序

作者: RobertCrazying | 来源:发表于2018-10-28 21:10 被阅读10次

    前言

    大部分的排序算法都是基于数值大小比较来进行排序的,那还有其他方式进行排序吗?计数排序就是其中一种。计数排序通过数组下标来确定元素的位置。

    举例

    有以下数组待排序:
    9,3,5,4,9,1,2,7,8,1,3,6,5,3,4,0,10,9 ,7,9

    观察发现大小都在 0-10 这个范围。

    那么我们可以对每个数字的出现次数做统计,初始化如下:


    image.png

    由于第一个数字是 9 ,于是在数字下标为 9 的元素 +1.

    image.png

    第二个整数是 3,那么数组下标为 3 的元素加 1:

    image

    最终,数列遍历完毕时,数组的状态如下:

    image

    有了这个 “统计结果”,排序就很简单了。直接遍历数组,输出数组元素的下标值,元素的值是几,就输出几次:

    0,1,1,2,3,3,3,4,4,5,5,6,7,7,8,9,9,9,9,10

    可以看到这个数组已经是有序的了。

    相关文章

      网友评论

          本文标题:计数排序

          本文链接:https://www.haomeiwen.com/subject/vkbmtqtx.html