//时间复杂度O(k + n) 空间复杂度O(k + n).稳定排序
//接口:a[i]原数组。ranked[i]排好顺序的数组,maxn数组个数,maxk数字的范围
//调用 jishusort(n,maxk); //n代表数组的大小
int a[maxn],ranked[maxn],cnt[maxk];//cnt[i]小于等于i的个数
void jishusort(int n,int k)//n数组的大小,k数组中数字的范围
{
for(int i = 0; i < n; i ++)
{
cnt[a[i]] ++;
}
for(int i = 1; i < k; i ++)
{
cnt[i] += cnt[i - 1];
}
for(int i = n -1 ; i >= 0; i --)
{
ranked[--cnt[a[i]]] = a[i];
}
}
计数模式 (模板)
最新推荐文章于 2023-03-28 16:21:13 发布