排序算法——基数排序

  • 将需要排序的各个数当做元素,集合组成数组,对数组中的元素进行排序,再开辟一个临时数组的空间将数组中已有的元素数值当做临时数组的下标储存在临时数组中,然后用区别初始化值的方法区别出临时数组中待排数组的元素,以已排好的顺序存储到原始数组中完成排序。这是一种以空间换时间的排序算法,时间复杂度为O(n),该算法有局限性:①只能排正整数;②不能排重复值;③空间耗费可能巨大。
    //待排数组,将需要排序的各个数当做元素,集合组成数组66		43		89		98		12		18		15		23		33		50
    a[0]   a[1]    a[2]    a[3]    a[4]    a[5]    a[6]    a[7]    a[8]    a[9]	
    //临时数组,将数组中已有的元素数值当做临时数组的下标储存在临时数组中//初始化临时数组,初始化的值不是待排数组中的元素的值即可-1		-1		-1		-1		-1		-1		-1		-1		-1		-1     
    a[0]   a[1]    ...		...		...		...		...		...    a[99]    ...//将数组中已有的元素数值当做临时数组的下标储存在临时数组中12	  15	   18		23		 33		  43	   50		66		 89		  98   
    a[12]   a[15]    a[18]    a[23]    a[33]    a[43]    a[50]    a[66]    a[89]    a[98]  
    //用区别初始化值的方法区别出临时数组中待排数组的元素,以已排好的顺序存储到原始数组中完成排序12		15		18		23		33		43		50		66		89		98
    a[0]   a[1]    a[2]    a[3]    a[4]    a[5]    a[6]    a[7]    a[8]    a[9]  代码:     
    //基数排序
    void radix_sort(int* a, int len, int max){//先准备一个临时数组   max+1int* pTemp = malloc(sizeof(int)*(max + 1));//初始化   -1for (int i = 0; i <= max; i++){pTemp[i] = -1;}//把待排数组  放到临时数组中来     待排数组作为临时数组下标for (int i = 0; i <len; i++){pTemp[a[i]] = a[i];}//从临时数组中把已经排好序的数据放回来int k = 0;for (int i = 0; i <= max; i++){if (pTemp[i] != -1){a[k++] = pTemp[i];}}//释放内存free(pTemp);
    }

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

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

相关文章

全方位掌握卷积神经网络:理解原理 优化实践应用

计算机视觉CV的发展 检测任务 分类与检索 超分辨率重构 医学任务 无人驾驶 整体网络架构 卷积层和激活函数&#xff08;ReLU&#xff09;的组合是网络的核心组成部分 激活函数(ReLU&#xff09; 引入非线性&#xff0c;增强网络的表达能力。 卷积层 负责特征提取 池化层…

[MySQL] 二进制文件

文章目录 日志文件binlog是什么简介产生方式文件格式statementrowmixed 怎么办设置文件存储格式缓冲区大小的调整方式缓冲区写入文件的时机 sync_binlog 日志文件 官网 https://dev.mysql.com/doc/refman/8.0/en/server-logs.html中文版 https://mysql.net.cn/doc/refman/8.0/e…

OpenCV | 霍夫变换:以车道线检测为例

霍夫变换 霍夫变换只能灰度图&#xff0c;彩色图会报错 lines cv2.HoughLinesP(edge_img,1,np.pi/180,15,minLineLength40,maxLineGap20) 参数1&#xff1a;要检测的图片矩阵参数2&#xff1a;距离r的精度&#xff0c;值越大&#xff0c;考虑越多的线参数3&#xff1a;距离…

快速安装方式安装开源OpenSIPS和CP控制界面

OpenSIPS是目前世界上主流的两个SIP软交换引擎(其中另外一个是kamailio)或者SIP信令服务器&#xff08;个人认为是比较正确的称谓&#xff09;。关于Opensips的基础和一些参数配置和安装方式笔者在很久以前的历史文档中有非常多的介绍。最近&#xff0c;很多用户使用OpenSIPS软…

《PySpark大数据分析实战》-18.什么是数据分析

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

EPROM 作为存储器的 8 位单片机

一、基本概述 TX-P01I83 是以 EPROM 作为存储器的 8 位单片机&#xff0c;专为多 IO 产品的应用而设计&#xff0c;例如遥控器、风扇/灯光控制或是 玩具周边等等。采用 CMOS 制程并同时提供客户低成本、高性能等显着优势。TX-P01I83 核心建立在 RISC 精简指 令集架构可以很容易…

【零基础入门Docker】什么是Dockerfile Syntax

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门Docker专栏https://blog.csdn.net/arthas777/category_12455882.html 目录 编写Dockerfile和Format的语法 2. MAINTAINER 3. RUN 4. ADD 6. ENTRYPOINT 7. CMD 8. EXPOSE 9. VOLUME 11. USER 12. ARG …

Git指令集合

文章目录 1. 撤销暂存区内容2.修改commit comment3. 合并分支3.1 git rebase3.2 git merge 4.撤销前3次commit指令5. cherry pick git指令有很多&#xff0c;常用的也就是那么几个&#xff0c;今天回顾一下几个准常用&#xff0c;很重要的几个指令。 1. 撤销暂存区内容 当我把…

【iOS】UICollectionView

文章目录 前言一、实现简单九宫格布局二、UICollectionView中的常用方法和属性1.UICollectionViewFlowLayout相关属性2.UICollectionView相关属性 三、协议和代理方法&#xff1a;四、九宫格式的布局进行升级五、实现瀑布流布局实现思路实现原理代码调用顺序实现步骤实现效果 总…

centos 安装 Miniconda

在 CentOS 上安装 Miniconda 的步骤通常包括下载 Miniconda 安装脚本、运行脚本以及配置环境。以下是详细步骤&#xff1a; 1. 下载 Miniconda 安装脚本 首先&#xff0c;您需要从 Miniconda 的官方网站下载适用于 Linux 的安装脚本。您可以使用 wget 命令在 CentOS 终端中直…

在ajax中使用callback

今天遇到个场景是在点击按钮时&#xff0c;调用请求&#xff0c;在请求完成后&#xff0c;获取到后台返回的某个值之后再去执行下一步操作&#xff0c;也就是要同步进行。其实用setTimeout也是可以实现的&#xff0c;但考虑到效果最好&#xff0c;决定使用callback。 getData …

Pytohn data mode plt

文章目录 文件的读写创建.csv类型的文件&#xff0c;并读取文件创建.xlsx文件 使用Python做图生成数据集切片取值操作修改张量中指定位置的数据 知识点torch.arange(x)torch.tensor(2)Atorch.randn(36).reshape(6,6)shapenumel()reshape(x,y,z)torch.zeros(3,3,4)torch.ones(2,…

论文推荐:大型语言模型能自我解释吗?

这篇论文的研究主要贡献是对LLM生成解释的优缺点进行了调查。详细介绍了两种方法&#xff0c;一种是做出预测&#xff0c;然后解释它&#xff0c;另一种是产生解释&#xff0c;然后用它来做出预测。 最近的研究发现&#xff0c;即使LLM是在特定数据上训练的&#xff0c;也不能认…

【WPF.NET开发】WPF中的数据绑定

本文内容 什么是数据绑定数据绑定基本概念数据绑定的示例创建绑定数据转换绑定到集合数据模板化数据验证调试机制 Windows Presentation Foundation (WPF) 中的数据绑定为应用呈现数据并与数据交互提供了一种简单而一致的方法。 元素能够以 .NET 对象和 XML 的形式绑定到不同…

【微服务】:微服务最佳实践

关键需求 最大限度地提高团队的自主性&#xff1a;创建一个团队可以完成更多工作而不必与其他团队协调的环境。 优化开发速度&#xff1a;硬件便宜&#xff0c;人不是。使团队能够轻松快捷地构建强大的服务。 关注自动化&#xff1a;人们犯错误。更多的系统操作也意味着更多的…

v-show用法

v-show是Vue.js中的一个指令&#xff0c;用于控制元素的显示和隐藏。v-show指令根据表达式的值来决定元素是否显示&#xff0c;当表达式的值为true时&#xff0c;元素将显示&#xff1b;当表达式的值为false时&#xff0c;元素将隐藏。 v-show的用法如下&#xff1a; <div…

蓝牙物联网室内定位系统解决方案

目前国内外室内定位技术较多&#xff0c;常见的有无线局域网(Wireless Fidelity,WiFi)、射频识别(Radio FrequencyIdentification,RFID)、蓝牙低功耗(Bletooth Low EnergyBLE)、超宽带(Ultra Wide BandUWB)技术等。近几年智能设备的迅速发展和蓝牙设备的生产制造成本越来越低&a…

信号与线性系统翻转课堂笔记8——周期信号的频谱

信号与线性系统翻转课堂笔记8——周期性信号的频谱 The Flipped Classroom8 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#xff0c;重点&#…

云卷云舒:云原生业务应用成熟度模型

笔者最近学习了信通院发布的《云原生应用成熟度的评估模型》&#xff0c;做如下解读&#xff1a; 一、概述 云原生业务应用成熟度模型从企业业务应用基础设施域、应用研发域以及服务治理域等三个能力域二十个过程域综合评估企业业务应用在弹性、高可用、自愈性、可观测性以及…

OpenCV利用HSV颜色区间分离不同物体

需求 当前有个需求是从一个场景中将三个不同的颜色的二维码分离出来&#xff0c;如下图所示。 这里有两个思路可以使用 思路一是通过深度学习的方式&#xff0c;训练一个能够识别旋转边界框的模型&#xff0c;但是需要大量的数据进行模型训练&#xff0c;此处缺少训练数据&a…