參考啊哈算法第一節
void BucketSort(vector<int> &a){
int high = INT_MIN;
int low = INT_MAX;
for (int i = 0; i < a.size(); i++){
if (a[i] > high){
high = a[i];
}
if (a[i] < low){
low = a[i];
}
}
int BucketCap = high - low;
if (BucketCap <= 0) return;
vector<int>Bucket(BucketCap+1);
for (int i = 0; i < a.size(); i++){
int t = a[i];
Bucket[t]++;
}
int j = 0;
for (int i = 0; i < BucketCap; i++){
if (Bucket[i] == 0) continue;
else{
a[j] = i;
j++;
}
}
}