桶排tj
2025-08-29 11:01:14
发布于:广东
2阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
void DoSort(vector<int>& vec){
int mx=*max_element(vec.begin(),vec.end());
int mn=*min_element(vec.begin(),vec.end());
int num=(mx-mn+1)/vec.size()+1;
vector<vector<int>> B(num);
for(int i=0;i<vec.size();i++){
int ind=(vec[i]-mn+1)/vec.size();
B[ind].push_back(vec[i]);
}
for(int i=0;i<num;i++){
sort(B[i].begin(),B[i].end());
}
vec.clear();
for(int i=0;i<num;i++){
for(int j=0;j<B[i].size();j++){
vec.push_back(B[i][j]);
}
}
}
int main(){
int n;
cin>>n;
vector<int> vec;
for(int i=0;i<n;i++){
int x;
cin>>x;
vec.push_back(x);
}
DoSort(vec);
for(int i=n-1;i>=0;i--){
cout<<vec[i]<<" ";
}
}
这里空空如也

有帮助,赞一个