思想:
原理:将数值作为桶号,遍历整个数组,将相应的桶进行计数
1、 遍历原数组,找到最大值max,然后申请max+1个空间(桶),初始化为0(下标为0-max),即 vector<int>bucket(max+1,0)
2、 再次遍历原数组,找到每个数值对应的桶号,并对桶计数++,即bucket[vec[i]]++
3、 遍历桶数组,看对应的桶内计数为几就取出几下下标值(桶号),放到原数组中。
代码:
#include<iostream>
#include<vector>
using namespace std;
void bucketSort(vector<int>&vec, int n)
{
int max = vec[0];
for