排序算法之计数排序

Posted hujingnb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法之计数排序相关的知识,希望对你有一定的参考价值。

概述

简单来说, 计数排序就是申请一个相同数据范围的数组空间, 计算每个数字各有几个,如此即可.

如一个数组为: [5, 2, 3, 4, 6, 3, 1, 0]

申请一个长度为6的数组(因为数组范围为0-5), 其中的值为: [1, 1, 1, 2, 1, 1, 1]

其数组意思就是, 0有1个,1有1个, 类推

最后将其拼装为排序好的数组即可

通过描述可以看出, 这个排序不适合范围过大的数组, 如果有一个长度为2的数组: [1, 9999999999999], 虽然数组很短, 但是用计数排序的话, 计数数组也是十分大的. 而对于数字范围小, 且重复数字很多的情况, 那就很好了.

技术分享图片

 

其时间空间复杂度如下:

技术分享图片

 

Java代码实现

好吧, 计数排序很简单, 简单Java代码实现:

技术分享图片

 

 

可以关注一下鄙人的公众号, 谢谢各位了!技术分享图片

以上是关于排序算法之计数排序的主要内容,如果未能解决你的问题,请参考以下文章

十大排序算法之计数排序

重温基础算法内部排序之计数排序法

重温基础算法内部排序之计数排序法

十大经典排序之:基数排序 |计数排序

排序算法之计数排序

排序算法之计数排序