110,排序-计数排序

Posted 数据结构和算法

tags:

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

计数排序是一个非基于比较的排序算法,他首先要找到数组的最大值和最小值然后再根据最大值和最小值申请频率表,其实就是个数组,每个数在数组中出现的频率,我们这里暂且以桶来表示,每个桶对应一个数在原数组中出现的频率,如果一个桶为1就表示和这个桶对应的这个数在原数组中只出现一次,如果为2就表示出现两次……,我们直接看代码

原理就是把对应的数放到对应的桶里,如果桶里已经有值了,说明出现了两个重复的数,桶的值要累加。当每个桶对应值的个数确定以后就把前面的个数不断的累加然后放到后面的桶中,因为当一个数对应后面的桶的时候,他要确定前面有多少比他小的数,然后排序的时候再存放到原数组对应的位置。这里我们是以升序讲解的,比如,当一个数和一个桶对应的时候他需要知道前面究竟有几个比他小的他才能找准在原数组排序的位置,所以前面桶的值要累加到当前桶中,还是看一下图吧

110,排序-计数排序

我们随便找一组数据,测试一下运行结果

110,排序-计数排序

看一下运行结果

结果正是我们所求的,这就是计数排序。

关注,点赞,评论,转发

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

❤️数据结构入门❤️(4 - 6)- 计数排序

算法计数排序桶排序和基数排序详解

计数排序vs基数排序vs桶排序

排序算法非比较排序:计数排序基数排序桶排序

算法 计数排序

排序--09---计数排序