排序 | 计数排序
Posted YOUCRY
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序 | 计数排序相关的知识,希望对你有一定的参考价值。
1.描述
示例 1
输入:arr = [8,7,6,5,4,3,2,1]
输出:[1,2,3,4,5,6,7,8]
![排序 | 计数排序](https://image.cha138.com/20210413/d35bd537e7a049a9956517a7e6751721.jpg)
![排序 | 计数排序](https://image.cha138.com/20210413/5966c01aa9374addb328a7bbd88993cf.jpg)
2.想法
![排序 | 计数排序](https://image.cha138.com/20210413/d35bd537e7a049a9956517a7e6751721.jpg)
![排序 | 计数排序](https://image.cha138.com/20210413/5966c01aa9374addb328a7bbd88993cf.jpg)
3.代码
![排序 | 计数排序](https://image.cha138.com/20210413/d35bd537e7a049a9956517a7e6751721.jpg)
class Solution {
public:
void countSort(vector<int>& arr,int maxValue){
//假设元素范围在0-maxValue之间 负数可通过偏移量转换(移位)
vector<int> count(maxValue+1,0);
for(int i=0;i<arr.size();i++){
count[arr[i]]++;
}
int k=0;
for(int i=0;i<count.size();i++){
for(int j=0;j<count[i];j++){
arr[k++]=i;
}
}
}
};
以上是关于排序 | 计数排序的主要内容,如果未能解决你的问题,请参考以下文章