计数排序
流程
- 统计元素出现次数:遍历待排序数组,对于每个元素,在计数数组的对应位置上增加计数。
- 计算前缀和:对计数数组进行前缀和计算。前缀和数组中的每个元素表示小于等于该下标的元素在原数组中出现的总次数。
- 输出排序结果:倒序遍历待排序数组,根据计数数组中的前缀和信息,确定每个元素在排序后数组中的位置,并将其放入相应位置。
板子
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,MAX;
int cnt[N];
int a[N],b[N];
void sort_js()
{
memset(cnt,0,sizeof(0));
for(int i=1;i<=n;i++)
cnt[a[i]]++;
for(int i=1;i<=MAX;i++)
cnt[i]+=cnt[i-1];
for(int i=n;i>=1;i--)
b[cnt[a[i]]--]=a[i];
memcpy(a,b,sizeof(a));
}
int main()
{
return 0;
}
本文来自博客园,作者:流氓兔LMT,转载请注明原文链接:https://www.cnblogs.com/-include-lmt/p/18741925

浙公网安备 33010602011771号