统计相同元素出现次数
2. 根据统计的结果将序列回收到原来的序列中
找出最大和最小值: 首先遍历数组 a 一次,找到其中的最大值 max 和最小值 min。...计数数组的每个元素初始化为0,用于记录原数组中每个数值出现的次数。...统计每个元素的出现次数: 再次遍历原数组 a,对于数组中的每个元素 a[i],计算它与最小值的差值 a[i] - min,并将计数数组中对应索引的位置加1。...2.以int a[] = { 1,3,9,1,5,1,2,3,-5,-5,-2 };为例,手撕分析
3.代码实现
void CountSort(int* a, int n)
{//找出最大和最小元素...for (int i = 0; i < n; i++)
{
count[a[i] - min]++;//min作为偏移量,然后再在对应数组位置++,统计该数字出现的次数
}
// 排序