【GIF动画+完整可运行源代码】C++实现 基数排序——十大经典排序算法之十
十大经典排序算法系列博客——>传送门
取得数组中的最大数,并取得位数;
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++实现 基数排序——十大经典排序算法之十相关推荐
- 【完整可运行源码+GIF动画演示】十大经典排序算法系列——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
以前也零零碎碎发过一些排序算法,但总是不系统, 这次彻底的对排序系列做了一个整体的规划, 小伙伴们快快mark哦~ [GIF动画+完整可运行源代码]C++实现 冒泡排序--十大经典排序算法之一 [GI ...
- C++实现桶排序——十大经典排序算法之九【GIF动画+完整代码+详细注释】
十大经典排序算法系列博客-->传送门 桶排序是计数排序的升级版.它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定.桶排序 (Bucket sort)的工作的原理:假设输入数据服从均 ...
- 十大经典排序算法动画与解析,看我就够了
作者 | 程序员小吴 转载自五分钟学算法(ID: CXYxiaowu) 排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行 ...
- 11月14日云栖精选夜读 | 动画+原理+代码,解读十大经典排序算法
排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过 ...
- 十大经典排序算法及比较与分析 ( 动画演示 ) ( 可视化工具 )
可视化工具及动画展示:旧金山大学 (usfca)|数据结构可视化工具 排序算法概念及描述:1.0 十大经典排序算法(文章部分内容引用自改文章) 参考:邓俊辉 的数据结构 本文未对排序算法概念进行详细说 ...
- 十大经典排序算法动画,看我就够了!
Tip 为了演示更加清楚,本文中所有的动画都放慢了速度,因此GIF大小对比之前会有所增大,图片加载速度会变慢,如果你想获取所有的超清动画,在公众号 五分钟学算法 回复 github 可获得资料. 在前 ...
- c语言动画原理,动画详解十大经典排序算法(C语言版)
排序算法是程序员必备的基础知识,弄明白它们的原理和实现很有必要.本文中将通过非常细节的动画展示出算法的原理,配合代码更容易理解. 概述 由于待排序的元素数量不同,使得排序过程中涉及的存储器不同,可将排 ...
- 十大经典排序算法动画与解析,看我就够了!(附代码)
作者 | 程序员小吴 来源 | 五分钟学算法(ID:CXYxiaowu) 排序算法是<数据结构与算法>中最基本的算法之一.排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行 ...
- 十大经典排序算法(附代码、动画及改进方案)
前言说明 十大排序算法可以说是每个程序员最早接触的也是最重要的算法,这一块必须要非常熟练的掌握,应该要理解每种排序的思想,对各个排序的性能的了解也是基础且重要的.为了方便自己和大家学习,决定整合成一篇 ...
最新文章
- Exchange Server 2019新功能预览-揭秘被削减的功能
- 推荐系统炼丹笔记:阿里边缘计算+奉送20个推荐系统强特
- java poi doc转docx_Java 插入Word分页符、分节符
- 【Linux系统编程】文件描述符的复制dup()和dup2()
- 【Linux】一步一步学Linux——dpkg-trigger命令(276)
- AlphaGo技术剖析:揭开围棋大脑的神秘面纱
- SAP Spartacus CMSService 的调用栈以及 meta 标签的生成过程
- 全新的 Fragment 通信方式
- from mysql partition select_玩转select条件查询,避免踩坑
- 2017.9.23 循环格 思考记录
- Linux服务器的优化
- Python之线程同步与线程锁
- 视频截图 使用ffmpeg_mencoder
- 全国计算机自动化办公专业人才证书,办公自动化证书有什么用
- 如何用计算机制作pop海报,ai怎么制作pop海报字体?ai简单快速制作pop字体教程
- 安全协议设计与分析-32学时 考试复习
- Soft(er)-NMS:非极大值抑制算法的两个改进算法
- 如何成为巨量引擎Marketing API开发者
- 软件工程实践总结(个人)
- php的ct表现,图文详解丨气胸的影像学表现
热门文章
- requests库提示警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate ver
- Java8 日期/时间(Date Time)API指南
- 第四期直播分享预告-高薪offer指南
- 高并发之API接口,分布式,防刷限流,如何做?
- 干货 | 阿里巴巴HBase高可用8年抗战回忆录
- JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止
- 挖一挖曹大 holmes 的设计与实现
- 双指针解决力扣两/三数之和问题
- 梁俊斌:音频技术可以延展众多应用场景
- 研发团队远程高效协作秘笈