学校正在选举学生会成员,有n(n≤999) 名候选人,每名候选人编号分别从 1 到 n,现在收集到了 m(m<=2000000) 张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
输入格式
输入 n 和 m 以及 m 个选票上的数字。
输出格式
求出排序后的选票编号。
该题我用的是桶排序算法,代码如下:
#include <stdio.h>
int main()
{
int num,n,m;
int arr[1000]={0};
scanf("%d %d",&n,&m);
int i;
for(i=0;i<m;i++)
{
scanf("%d",&num);
arr[num]++;
}
int j;
for(j=0;j<=n;j++)
{
while(arr[j]--)
{
printf("%d ",j);
}
}
return 0;
}
本文介绍了一种使用桶排序算法处理大规模选票数据的方法。面对数量庞大的选票(最多可达200万张),且每位候选人的编号范围限定为1至999,通过桶排序可以有效地将这些选票按编号顺序排列。文章提供了完整的C语言实现代码。
&spm=1001.2101.3001.5002&articleId=128258289&d=1&t=3&u=6e66f82d30c0476692a1b099faebf9bf)
711

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



