欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计数排序(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;
}

相关标签: c++ 算法 排序