计数排序(countsort)的c++代码/vector/使用于int数组
程序员文章站
2022-03-24 13:45:23
...
#include<iostream>
#include<vector>
using namespace std;
vector<int> CountSort(vector<int>const arr,int max,int min)
{
vector<int> temp(max,0);
vector<int> output(arr.size(),0);
for (int i=0;i<arr.size();i++)
{
temp[arr[i]-min]++;
}
for(int j=1;j<temp.size();j++)
{
temp[j]+=temp[j-1];
}
for (int i=0;i<arr.size();i++)
{
output[temp[arr[i]-min]-1]=arr[i];
temp[arr[i]-min]--;
}
return output;
}
int main()
{
std::vector<int> arr= { 5,3,7,2,8,9,4,3,3,10,20};
int max = 20;
int min=2;
vector<int>output=CountSort(arr,max,min);
for (int i=0;i<output.size();i++)
{
std::cout<<output[i]<<' ';
}
cout << endl;
return 0;
}
上一篇: 关于选择排序的两种实现方法
下一篇: 归并排序算法总结