tijei
2024-08-21 17:10:49
发布于:天津
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector <int> bucket[65536];
int get_digit(int n, int radix){
int ct = 0;
while(n){
ct++, n /= radix;
}
return ct;
}
void fsort(int *left, int *right, int radix = 65536){
int max_digit = 0;
for(int *i = left; i < right; i++){
max_digit = max(max_digit, get_digit(*i, radix));
}
for(int _ = 1, cur = 1; _ <= max_digit; _, cur *= radix){
for(int *i = left; i < right; i){
bucket[(*i) / cur % radix].push_back(*i);
}
int *ct = left;
for(int i = 0; i < radix; i++){
for(auto it:bucket[i]){
*ct++ = it;
}
bucket[i].clear();
}
}
}
int a[100005];
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
fsort(a + 1, a + n + 1);
for(int i = 1; i <= n; i++){
cout << a[i] << ' ';
}
return 0;
全部评论 1
不是我给你版权了吗😡V我50😂
2024-08-27 来自 广东
0谁要你版权?!
2024-08-28 来自 天津
1我自己想的关你什么事
2024-08-28 来自 天津
0那你还抄我的😡👊
2024-08-28 来自 广东
0
有帮助,赞一个