計數排序算法:
void countingsort_10(vector<int> &_snum, int _len)
{
vector<int>::iterator k;
k = max_element(_snum.begin(), _snum.end());
int knum = _snum[k - _snum.begin()];
vector<int> t(knum);
vector<int> result(_len);
for (int i = 0; i < knum; i++)
{
t[i] = count(_snum.begin(), _snum.end(), i+1);
}
for(int i=1; i<knum; i++)
{
t[i] += t[i - 1];
}
for (int i = _len-1; i >= 0; i--)
{
result[t[_snum[i]-1]-1] = _snum[i];
t[_snum[i]-1 ]--;
}
_snum = result;
}