博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基数排序
阅读量:4216 次
发布时间:2019-05-26

本文共 953 字,大约阅读时间需要 3 分钟。

#include
using namespace std;typedef long long LL;int a[100000];int getN(int a[],int n){ //找出最大的位数 LL ma = a[0]; for(int i = 1; i < n; ++i){ if(a[i] > ma){ ma = a[i]; } } int cnt = 0; while(ma > 0){ ma /= 10; ++cnt; } return cnt;}void radixSort(int a[],int n) { int len = getN(a,n); int count[10]; int base = 1; int *tmp = (int*)malloc(sizeof(int)*n); if(!tmp) return; for(int i = 0; i < len; ++i){ for(int j = 0; j < 10; ++j){ count[j] = 0; } for(int k = 0; k < n; ++k){ ++count[a[k]/base%10]; } for(int j = 1; j < 10; ++j){ count[j] =count[j] + count[j-1]; } for(int k = n-1; k >= 0; --k){ //注意这里需要逆序收集元素 否则错误 tmp[--count[(a[k]/base)%10]] = a[k]; } for(int k = 0; k < n; ++k){ a[k] = tmp[k]; } base *= 10; } }int main() { int n; cin >> n; for(int i = 0; i < n; ++i){ cin >> a[i]; } radixSort(a,n); for(int i = 0; i < n; ++i){ cout << a[i] << " "; } return 0; }

转载地址:http://vrimi.baihongyu.com/

你可能感兴趣的文章
MAC下安装多版本JDK和切换几种方式
查看>>
java.util.concurrent详解
查看>>
java事务大总结(一) 先理解数据库的事务以mysql为例
查看>>
java事务大总结(二) 理解JDBC事务的工作机制
查看>>
java事务大总结(三) 理解学习 JTA(Java Transaction API)
查看>>
java事务大总结(四)spring事务相关大总结
查看>>
驴妈妈管理的一点经验总结
查看>>
IOS开发学习的好资料大搜藏
查看>>
SSH的认证终结(无需密码的git操作或者ssh链接无需密码)
查看>>
Jetty 的工作原理以及与 Tomcat 的比较
查看>>
ssh-keygen的使用方法 注意权限问题
查看>>
zookeeper的server的集群配置实例[张振华-Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第三篇:我的舍与得的2014[张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第五篇:不要给自己找任何借口【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第七篇:请留意我们身边的风景 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第八篇:坚持的力量 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第九篇:春节那些事-过年回家不需要理由【张振华.Jack】
查看>>