C++实现排序算法之计数排序
B站该视频理解比较好,讲的比较详细(标题讲的是桶排序,但最本质是计数排序)
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
void sort(int arr[], int len)
{
int arrTemp[34] = { 0 }; //这里的数组大小取值,是等于原数组中最大值+1
int arrTempLen = sizeof(arrTemp) / sizeof(int);
for (int i = 0; i < len; i++) //分别将原数组中的数值,放到对应索引的桶元素中,并开始进行计数
{
arrTemp[arr[i]]++;
}
for (int i = 0; i < arrTempLen; i++)
{
for (int j = 1; j <= arrTemp[i]; j++)
{
cout << i << " ";
}
}
cout << endl;
}
void main()
{
cout << endl;
int arr[] = { 7, 4, 3, 2, 7, 10, 33, 2 };
int len = sizeof(arr) / sizeof(int);
cout << "排序后结果:" << endl;
sort(arr, len);
cout << endl;
system("pause");
}