Bucket_sort
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
void insert_sort(int* a, int n) {
int t,j;
for (int i = 1; i < n; i++) {
t = a[i];
for (j = i-1; j >= 0; j--) {
if (t < a[j])
a[j + 1] = a[j];
else
break;
}
a[j + 1] = t;
}
}
void Bucket_sort(int *a,int n) {
int bucket[5][5] = { 0 };
int bucketsize[5] = { 0 };
for (int i = 0; i < n; i++)
bucket[a[i] /10][bucketsize[a[i] /10]++]=a[i];
for (int i = 0; i < 5; i++)
insert_sort(bucket[i], bucketsize[i]);
int k = 0;
for (int i = 0; i < 5; i++)
for(int j=0;j< bucketsize[i];j++)
a[k++] = bucket[i][j];
}
int main() {
int a[] = { 21,3,30,44,15,36,6,10,9,19,25,48,5,23,47 };
Bucket_sort(a, sizeof(a) / sizeof(int));
for (const auto& e : a)
cout << e << " ";
cout << endl;
return 0;
}