c++桶排序

  • 描述
    利用桶排序给n个数排序
  • 输入描述
    第一行n
    第二行,n个数
  • 输出描述
    排序后的n个数

桶排序(v1.0)思路:

  1. 统计这些数据的出现次数
  2. 输出这个数据它的出现次数次

桶排序(v2.0)思路:

  1. 把数据分到一些“桶”里
  2. 对这些桶分别排序
  3. 将这些桶里的元素合起来就是排序后的数组

代码来啦(v1.0)

#include<bits/stdc++.h>
using namespace std;
int main(){
int n,mx=0,bucket[1000005]={};
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
bucket[x]++,mx=max(mx,x);
}
for(int i=0;i<=mx;i++)
while(bucket[i]--)
cout<<i<<" ";
return 0;
}

代码又双叒叕来啦(v2.0)

#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n]={},mx=INT_MIN,mn=INT_MAX;
for(int i=0;i<n;i++){
cin>>a[i];
mx=max(mx,a[i]),mn=min(mn,a[i]);
}
int bucketn=(mx-mn)/n+1;
vector<vector<int> > v(bucketn);
for(int i=0;i<n;i++){
int num=(a[i]-mn)/n;
v[num].push_back(a[i]);
}
for(int i=0;i<bucketn;i++)
sort(v[i].begin(),v[i].end());
vector<int>ans;
for(auto i:v)
for(int j:i)
ans.push_back(j);
for(int i:ans)
cout<<i<<" ";
return 0;
}

posted on   可爱楷玩算法  阅读(47)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示