数据结构---基数排序

数据结构—基数排序

原理:参考趣学数据结构

代码:

#include<stdio.h>
#include<stdlib.h>
int getNumberBit(int number) {//获取数字的位数int x = number,count=0;if (x == 0)return 1;while (x != 0) {count++;x /= 10;}return count;
}
int getlongBit(int a[],int length) {//获取数组最长的位数int longBit = 0;for (int i = 0; i < length; i++) {int tempBit = getNumberBit(a[i]);if (tempBit> longBit) {longBit = tempBit;}}return longBit;
}
int getNumberNoValue(int number, int bit) {//获取数字第bit位的值int value;while (bit) {value = number % 10;number /= 10;bit--;}return value;
}
void jiShuSort(int a[],int length){//基数排序int **b = (int **)malloc(10 * sizeof(int *));//二维数组10行int i;for (i = 0; i < 10; i++) {//默认十进制的每个数作为关键字进行比较b[i] = (int*)malloc((length + 1) * sizeof(int));b[i][0] = 0;//每行第一个数标记位数字是i的个数}int longBit = getlongBit(a, length);for (int bit = 1; bit <=longBit; bit++) {//分配for (int i = 0; i < length; i++) {int tempV = getNumberNoValue(a[i], bit);//第bit位的数值int index = ++b[tempV][0];b[tempV][index] = a[i];}int k = 0;for (int i = 0; i < 10; i++) {//收集,队列的思想for (int j = 1; j <= b[i][0]; j++) {a[k++] = b[i][j];}b[i][0] = 0;//重新赋值为0,为下一次分配重新初始化}}
}
void print9(int a[], int length) {for (int i = 0; i < length; i++) {printf("%d ", a[i]);}printf("\n");
}
int main() {int a[] = { 1,4,6,7,4,3,2,11,5,7,8,9,6,55 };int length = sizeof(a) / sizeof(a[0]);printf("排序前\n");print9(a, length);jiShuSort(a, length);printf("排序后\n");print9(a, length);system("pause");return 0;
}

测试截图:

在这里插入图片描述

时间复杂度O(n x n),空间复杂度O(n x n)

如果存在什么问题,欢迎批评指正!谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 版本 疫情传播仿真程序

前言前一阵子看到有人制作了《疫情传播仿真程序》&#xff0c;是用 Java做的。里面根据多种实际情况&#xff0c;如居民移动意愿、医护能力、病毒传播能力&#xff0c;来模拟疫情的发展。看完之后&#xff0c;我暗暗称奇&#xff0c;特别是结合一些视频和照片&#xff0c;确实做…

jmeter 加密解密_使用Jmeter对SHA1加密接口进行性能测试

机会只留给那些有准备的人改变能改变的&#xff0c;接受不能改变的&#xff0c;就是进步性能测试过程中&#xff0c;有时候会遇到需要对信息头进行加密鉴权&#xff0c;下面我就来介绍如何针对SHA1加密鉴权开发性能测试脚本 1、首先了解原理&#xff0c;就是需要对如下三个参数…

word List 06

word List 06 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

面对疫情,在家办公的程序员如何突围

作者&#xff1a;陌北有棵树&#xff0c;架构师社区合伙人很多程序员朋友都已经开始了在家办公的生活&#xff0c;第一天办公&#xff0c;你的远程工具还流畅吗&#xff0c;视频会议换了几个软件&#xff1f;当然这些都是外在因素&#xff0c;尤其对于程序员来说&#xff0c;解…

[蓝桥杯2018初赛]全球变暖-dfs,bfs,连通块

解题思路: bfs:遍历所有未遍历过的陆地&#xff0c;通过bfs计算出当前位置连通陆地的数量cnt&#xff0c;以及被淹没陆地的数量bound,若cnt bound表示完整淹没的一个岛屿 dfs:将连通块全部标记&#xff0c;如果这个连通块全部都会淹没&#xff0c;则答案1&#xff0c;如果这个…

latex 参考文献显示问号_回「LaTeX 的罪与罚」

原文链接&#xff1a;LaTeX 的罪与罚 - 朴素的贝叶斯的文章 - 知乎作为 LaTeX 开发者&#xff0c;看到这种嘲讽自然是非常 angry 的。本来并不想趟这个混水&#xff0c;然而眼见着赞数一天天涨上去&#xff0c;还居然进了精华区&#xff0c;实在忍不住只好注册了贵乎来说几句。…

疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

当前情况下&#xff0c;经常会有需要到公司电脑进行一些操作&#xff0c;比如连接内网OA&#xff0c;数据库或者提交文档。为了减少外出&#xff0c;将使用frp进行内网穿透的方法进行一个说明。前提条件1. 一台拥有公网 IP 的设备(如果没有&#xff0c;服务器可以使用https://d…

ad中电容用什么封装_二极管在电路中到底做什么用的

所有的电子电路中基本上都会用到二极管&#xff0c;它的特性也是非常之多&#xff0c;最主要就是单方向导电性&#xff0c;(单向导电性的两根引脚之间的电阻分为正向电阻和反向电阻两种)。人们利用这些不同特性构成各种具体的应用电路&#xff0c;分析不同电路中的二极管工作原…

数据结构---邻接矩阵的DFS

数据结构—邻接矩阵的DFS 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #define N 100 #define elemType int //const int MAX_INT (1 << 31) - 1; //const int MAX_INT 0X7fffffff; #define INF (((uns…

.NET Core 如何判断程序是否在远程桌面(RDP)下运行

点击上方蓝字关注“汪宇杰博客”导语由于疫情的关系&#xff0c;很久没发文章了。今天终于稳定下来在家办公&#xff0c;抽空分享一个刚学会的技巧。最近在家办公的程序员可能避免不了要用远程桌面&#xff0c;那么问题来了&#xff0c;你的 .NET Core 程序有没有办法知道自己是…

[蓝桥杯2018初赛]方格计数-巧妙枚举,找规,数论

解题思路&#xff1a; 枚举第一象限的所有点&#xff0c;判断是否在圆内&#xff0c;最后结果*4 我们用下面的程序&#xff0c;来算一个半径为2的圆&#xff0c;其实我们第一象限算的就是那个绿点&#xff0c;然后类比到半径5000. 代码如下&#xff1a; #include <iostre…

ipa在线安装搭建_三种越狱工具安装方法

从 iOS 9.2 开始&#xff0c;苹果越狱进入了半越狱时代&#xff0c;也就是重启手机之后需要重新进入越狱工具激活越狱环境&#xff0c;以下是三种常用的越狱工具安装方法&#xff1a;方法一&#xff1a;自签名下载大胡子签名工具&#xff1a;Cydia Impactor下载地址&#xff1a…

《ASP.NET Core 微服务实战》-- 读书笔记(第7章)

第 7 章 开发 ASP.NET Core Web 应用ASP.NET Core 基础在本章&#xff0c;我们将从一个命令行应用开始&#xff0c;并且在不借助任何模板&#xff0c;脚手架和向导的情况下&#xff0c;最终得到一个功能完整的 Web 应用GitHub链接&#xff1a;https://github.com/microservices…

git为私有仓库设置密码_dnf仓库密码设置不跳出 dnf仓库密码设置流程

部分玩家想要设置游戏中仓库密码但是自己不小心点击了不再提醒后不再弹出了&#xff0c;那么怎么办呢&#xff0c;其实不用着急&#xff0c;下面带大家了解一下如何设置设置仓库锁密码&#xff0c;感兴趣的玩家可以玩下看看哦。dnf仓库密码设置不跳出在游戏中玩家每天第一次登陆…

word List 07

word List 07 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

TIOBE 2月编程语言排行榜新鲜出炉!C# 获3.08%增长率!

编程C# 刚经历了一次TIOBE考试&#xff0c;2020年2月&#xff0c;它拿到的最新分数是第5名。老牌编程语言Java独占鳌头&#xff0c;C语言紧随其后。诚然&#xff0c;工程师们对C# 的青睐&#xff0c;还没能影响到大多数企业&#xff0c;但增长率3.08%的势头&#xff0c;可凭此预…

自动生成sqlserver增删改成_如何批量生成证书证件-可变条码-可变图片-可变数据-快速教程...

如何生成可变图像&#xff1f;如何生成可变文本&#xff1f;如何生成可变条码&#xff1f;如何使打印作业自动化&#xff1f;从多页设计中选取页使用几乎所有数据库程序中的数据库信息通过“拖放”创建个性化打印分享快速教程。1&#xff1a;批量自动化化印刷详细步骤如下&…

线性代数---矩阵的各种问题求解方法

线性代数—矩阵的各种问题求解方法 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

ERP开放平台定制化远程高效协作秘笈

疫情期间&#xff0c;远程研发协作办公成为各企业的主要工作方式&#xff0c;本文将明源云以往的研发实践&#xff0c;结合本次远程办公的实际经验&#xff0c;分享一下面对跨地区多团队&#xff0c;如何高效在线协同&#xff0c;保证研发质量与效率的实践经验。面对当前严重的…

[蓝桥杯2017初赛]跳蚱蜢-map标记+bfs+环形数组

解题思路&#xff1a; 这题如果我们考虑蚱蜢跳&#xff0c;有很多蚱蜢&#xff0c;有很多情况&#xff0c;所以我们让空盘跳&#xff0c;这样就简化题目了&#xff0c;然后我们化圆为直&#xff0c;将题目的情况看成字符串012345678&#xff0c;最后要变成087654321&#xff0c…