前言
一般的排序都是需要进行关键字的比较的。有没有不需要比较的的呢?有的,计数排序就是其中一种。
计数排序
假设输入序列都是0到k之间的整数,则可使用计数排序。具体操作是这样的:创建一个同类型同等大小的临时数组temp,用于备份输入序列。创建一个整型大小为k的数组count,用于统计序列中各元素出现的次数。接下来只需把备份序列从大到小放回原数组即可。一个示例图:
仔细看图,很容易理解的。并且可以看出计数排序是稳定的,下面给出它的示例代码;
代码
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#include<time.h>
void print(int *a, int n)
{
for (int i = 0; i &

计数排序是一种非比较型整数排序算法,通过统计输入序列中每个元素出现的次数,然后将序列从大到小放回原数组。此算法在元素位于[0,k)区间且k较小的情况下,可以达到O(n)的时间复杂度,但当k较大时,空间和时间效率都会降低。文章包含算法介绍、代码示例、运行分析及空间时间复杂度讨论。"
87969507,8064922,Python列表切片与元素修改指南,"['Python编程', '列表操作', '切片技巧', '元素修改', '字符串处理']
最低0.47元/天 解锁文章
473

被折叠的 条评论
为什么被折叠?



