void bucket_sort(int*a, int len) {
//根据数据范围获取排序次数
for (int i = 1; i < AREA; i *= 10) {
int temp[10][NUM];
memset(temp, -1, sizeof(int)* 10 * NUM);
//遍历a数组并按照排序方式把a数组元素存放到temp中
for (int j = 0; j < len; j++) {
int m = a[j] / i % 10;
temp[m][j] = a[j];
}
//放回原来的数组
int k = 0;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < NUM; j++) {
if (temp[i][j] != -1) {
a[k++] = temp[i][j];
}
}
}
}
}
桶排序
最新推荐文章于 2024-08-16 08:17:29 发布