十大经典排序算法系列博客——>传送门


基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。

算法步骤:

  • 取得数组中的最大数,并取得位数;

  • arr为原始数组,从最低位开始取每个位组成radix数组;

  • 对radix进行计数排序(利用计数排序适用于小范围数的特点);


代码展示

#include<iostream>
using namespace std;
int date[100],count[10],l;
//date[]保存数值  count[]记录对应基数数量  l记录最大数的长度
void basesort(int n){int num = 1;int temp[10][n];for(int i = 0 ; i < l ; i++){//控制趟数for(int j = 0 ; j < 10 ; j++){count[j] = 0;} for(int k = 0 ; k < n ; k++){ //选取对应基数 int f = date[k] / num % 10;temp[f][count[f]] = date[k];count[f] ++;  }int ind = 0;for(int j = 0 ; j < 10 ; j++){//重新赋值 for(int k = 0 ; k < count[j];k++){date[ind++] = temp[j][k];  }}num = num * 10;  }
}
int main(){int n;cin >> n;int max = -0xffff;for(int i = 0 ; i < n ; i++){//输入 cin >> date[i];if(date[i] > max){max = date[i];}}while(max > 0){ //求最大数长度 max = max /10;l++;}//cout << l<<endl;验证长度是否正确basesort(n);//调用基数排序方法 for(int i = 0 ; i < n ; i++){ //输出 cout << date[i]<<" ";}return 0;
}
/*
测试用例
6
433 5 12 3 22 345
*/

日拱一卒,功不唐捐。

【GIF动画+完整可运行源代码】C++实现 基数排序——十大经典排序算法之十相关推荐

  1. 【完整可运行源码+GIF动画演示】十大经典排序算法系列——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    以前也零零碎碎发过一些排序算法,但总是不系统, 这次彻底的对排序系列做了一个整体的规划, 小伙伴们快快mark哦~ [GIF动画+完整可运行源代码]C++实现 冒泡排序--十大经典排序算法之一 [GI ...

  2. C++实现桶排序——十大经典排序算法之九【GIF动画+完整代码+详细注释】

    十大经典排序算法系列博客-->传送门 桶排序是计数排序的升级版.它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定.桶排序 (Bucket sort)的工作的原理:假设输入数据服从均 ...

  3. 十大经典排序算法动画与解析,看我就够了

    作者 | 程序员小吴 转载自五分钟学算法(ID: CXYxiaowu) 排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行 ...

  4. 11月14日云栖精选夜读 | 动画+原理+代码,解读十大经典排序算法

    排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过 ...

  5. 十大经典排序算法及比较与分析 ( 动画演示 ) ( 可视化工具 )

    可视化工具及动画展示:旧金山大学 (usfca)|数据结构可视化工具 排序算法概念及描述:1.0 十大经典排序算法(文章部分内容引用自改文章) 参考:邓俊辉 的数据结构 本文未对排序算法概念进行详细说 ...

  6. 十大经典排序算法动画,看我就够了!

    Tip 为了演示更加清楚,本文中所有的动画都放慢了速度,因此GIF大小对比之前会有所增大,图片加载速度会变慢,如果你想获取所有的超清动画,在公众号 五分钟学算法 回复 github 可获得资料. 在前 ...

  7. c语言动画原理,动画详解十大经典排序算法(C语言版)

    排序算法是程序员必备的基础知识,弄明白它们的原理和实现很有必要.本文中将通过非常细节的动画展示出算法的原理,配合代码更容易理解. 概述 由于待排序的元素数量不同,使得排序过程中涉及的存储器不同,可将排 ...

  8. 十大经典排序算法动画与解析,看我就够了!(附代码)

    作者 | 程序员小吴 来源 | 五分钟学算法(ID:CXYxiaowu) 排序算法是<数据结构与算法>中最基本的算法之一.排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行 ...

  9. 十大经典排序算法(附代码、动画及改进方案)

    前言说明 十大排序算法可以说是每个程序员最早接触的也是最重要的算法,这一块必须要非常熟练的掌握,应该要理解每种排序的思想,对各个排序的性能的了解也是基础且重要的.为了方便自己和大家学习,决定整合成一篇 ...

最新文章

  1. Exchange Server 2019新功能预览-揭秘被削减的功能
  2. 推荐系统炼丹笔记:阿里边缘计算+奉送20个推荐系统强特
  3. java poi doc转docx_Java 插入Word分页符、分节符
  4. 【Linux系统编程】文件描述符的复制dup()和dup2()
  5. 【Linux】一步一步学Linux——dpkg-trigger命令(276)
  6. AlphaGo技术剖析:揭开围棋大脑的神秘面纱
  7. SAP Spartacus CMSService 的调用栈以及 meta 标签的生成过程
  8. 全新的 Fragment 通信方式
  9. from mysql partition select_玩转select条件查询,避免踩坑
  10. 2017.9.23 循环格 思考记录
  11. Linux服务器的优化
  12. Python之线程同步与线程锁
  13. 视频截图 使用ffmpeg_mencoder
  14. 全国计算机自动化办公专业人才证书,办公自动化证书有什么用
  15. 如何用计算机制作pop海报,ai怎么制作pop海报字体?ai简单快速制作pop字体教程
  16. 安全协议设计与分析-32学时 考试复习
  17. Soft(er)-NMS:非极大值抑制算法的两个改进算法
  18. 如何成为巨量引擎Marketing API开发者
  19. 软件工程实践总结(个人)
  20. php的ct表现,图文详解丨气胸的影像学表现

热门文章

  1. requests库提示警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate ver
  2. Java8 日期/时间(Date Time)API指南
  3. 第四期直播分享预告-高薪offer指南
  4. 高并发之API接口,分布式,防刷限流,如何做?
  5. 干货 | 阿里巴巴HBase高可用8年抗战回忆录
  6. JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止
  7. 挖一挖曹大 holmes 的设计与实现
  8. 双指针解决力扣两/三数之和问题
  9. 梁俊斌:音频技术可以延展众多应用场景
  10. 研发团队远程高效协作秘笈