参考的这篇文章:(13条消息) 8646 基数排序_夏帆er的博客-CSDN博客https://blog.csdn.net/remakeprogramer/article/details/106651895?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165130834416782391812364%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165130834416782391812364&biz_id=0&spm=1018.2226.3001.4187

Description

用函数实现基数排序,并输出每次分配收集后排序的结果

输入格式

第一行:键盘输入待排序关键的个数n
第二行:输入n个待排序关键字,用空格分隔数据

输出格式

每行输出每趟每次分配收集后排序的结果,数据之间用一个空格分隔

输入样例

10
278 109 063 930 589 184 505 069 008 083

输出样例

930 063 083 184 505 278 008 109 589 069
505 008 109 930 063 069 278 083 184 589
008 063 069 083 109 184 278 505 589 930

运用了c++STL中的vector容器

#include<cstdio>
#include<iostream>
#include<vector>
#include<string.h>
#include<algorithm>
#include<queue>
#include<iomanip>
using namespace std;
vector<int> d[10];//创建10个向量
int a[10000]={0};int pow(int k,int mi)//幂运算
{int sum=1;for(int i=0;i<mi;i++) {sum*=k;}return sum;
}int weishu(int t)//数的位数
{int i=0;while(t){t = t/10;i++;}return i;
}int main() {ios::sync_with_stdio(0),cin.tie(0);//加快cin和cout的输入速度int n,i,maxx=0,j,t,z;cin >> n;for (int i = 1; i <= n; i++) {//录入数据cin >> a[i];maxx = max(maxx,weishu(a[i]));//找出最大位数}for(i=0;i<maxx;i++) {//进行几次基数排序for(j=1;j<=10;j++)d[a[j]/pow(10,i)%10].push_back(a[j]);//将a[]数据压入向量容器中t = 1;for(j=0;j<10;j++) {//将十个向量容器中的数据重新录入a[]中for(z=0;z<d[j].size();z++)//单个向量容器中的数据a[t++] = d[j][z];d[j].clear();//清除向量}for(j=1;j<=n;j++)//输出a[]cout << setw(maxx) << setfill('0') << a[j] << ' ';cout << endl;}return 0;
}

SCAU 8646 基数排序相关推荐

  1. 基数排序算法LSD实现

    基数排序算法的实质是用的分类的方式. LSD 按低位开始分类, 其实在按各位进行分类的时候就已经注定了 相同位数的数的相对大小关系了. lsd实现如下: #include <iostream&g ...

  2. 算法笔记-桶排序代码与原理、非比较排序、计数排序、基数排序、C#代码

    1. 计数排序 原理: 计数排序需要用到桶,其核心是不通过比较来获得数的大小,以桶的方式存数来计数 举例来说,一个数组是{3 2 2 1 3 5},共6个数,那么我们需要准备5个有序桶,即1号桶.2号 ...

  3. 基数排序算法(基于Java实现)

    title: 基数排序算法(基于Java实现) tags: 基数算法 基数排序算法原理及代码实现: 一.基数排序算法的原理 基数排序属于"分配式排序",又称"桶子法&qu ...

  4. 基数排序python实现

    基数排序python实现 基数排序 基数排序(英语:Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较.由于整数也可以表达字符串(比如名字或 ...

  5. 基数排序中的LSD方法和MSD方法

    最高位优先(Most Significant Digit first)法,简称MSD法:先按k1排序分组,同一组中记录,关键码k1相等,再对各组按k2排序分成子组,之后,对后面的关键码继续这样的排序分 ...

  6. 计数排序,基数排序,桶排序

    转 http://blog.163.com/yuyang_tech/blog/static/216050083201382055821953/ 与合并排序,堆排序,快速排序等基于比较的排序算法不同,计 ...

  7. Hark的数据结构与算法练习之基数排序

    算法说明 基数排序是基于计数排序的,所以看这个之前要先看一下计数排序对于理解基数排序是很有帮助的(发现计数和基数的音节几乎一致啊).这个我有写,请点击. OK,现在你肯定已经熟悉了计数排序,那么我就来 ...

  8. 基数排序(c/c++)

    基数排序不同前面的各种排序,它并不基于比较排序,而是采用多关键字排序.通常,按照低位至高位的顺序进行排序的,也就是最低位优先(LSD). 本文也是采用最低位优先排序,代码是对简单的两位数进行基数排序, ...

  9. 数据结构:基数排序(Radix sort)

    import java.util.Arrays;public class RadixSort {public static void main(String[] args) {int[] arr = ...

最新文章

  1. 中国机器人产业发展报告(2018)正式发布!
  2. android ListView中长按背景颜色可见性设置
  3. 80个Python经典资料(教程+源码+工具)汇总——下载目录
  4. splunk 索引过程
  5. Java第三大的数,Java通过排序找出数组第三大数字
  6. scholar communication
  7. [蓝桥杯2017决赛]数位和-模拟(水题)
  8. ensp完成chap配置_广域网链路安全认证CHAP,一分钟了解下
  9. Script - MapSubString()使用
  10. fifo算法_前端进阶算法6:一看就懂的队列及配套算法题
  11. 输出nc数据_NetCDF(NC)数据的使用、转换和分析
  12. 测试类写法以及几种常用方式
  13. CentOS7环境下编译Hadoop3.2.1源码
  14. Linux下显示IP地理位置信息的工具-nali
  15. c c python的区别_python版本的区别 Cpython Jython pypy ?
  16. 在AID Learning中用IPad或电脑连接手机
  17. 这几本豆瓣高分前端好书,值得一读!
  18. 统计双色球各个数字的中奖概率
  19. nginx 地址重写
  20. 【Unity小游戏】一款类似“恐龙快打”的《横版街机格斗游戏》 该如何制作?| 一起来学习 顺便送源码

热门文章

  1. 高德地图的使用点标记、折线标记
  2. STM32夺命100问!你知道几个?
  3. python-__shots__
  4. WML语言基础(WAP建站)二(转)
  5. win10 运行虚拟机后就死机,求解决
  6. 《人人都是产品经理V2.0》读书笔记——第01章
  7. Android java.lang.IllegalArgumentException(...contains a path separator)
  8. 藏经阁导航-做你的全能小帮手
  9. jieba分词的最详细解读
  10. 2021-10-06 统计学-基于R(第四版)第一章课后习题记录及总结