十大排序基础排序算法总结 与 速度对比

【C#】十大排序算法(动图演示+代码实现) C#十大排序 阅读详情

 1、十大排序基础排序算法总结 与 速度对比 —— 耗时测试

       测试环境:CPU: i5-3210M 2.5GHz  2.5GHz;   内存:4G;    Win10 64位系统;    VS 2015   release模式 32位。

       测试数据均为 int 类型:

              取值规则为:(rand() % (N))  *  3  -  rand() % (N) 

              红色字体表示该排序算法仅仅支持非负整数,取值规则为: (rand() % (N))  *  3;
 

十大基础排序算法 耗时测试(单位:秒)

数组大小 1w10w100w1000w 1亿平均时间复杂度   空间复杂度
未改进的冒泡排序0.1415.85--- O(n2) O(1)
改进的冒泡排序 A0.1314.66--- O(n2) O(1)
改进的冒泡排序 B0.1314.48--- O(n2) O(1)
改进的冒泡排序 C0.0910.15--- O(n2) O(1)
选择排序0.043.53--- O(n2) O(1)
直接插入排序0.021.76--- O(n2) O(1)
折半插入排序0.021.77--- O(n2) O(1)
希尔排序0.0010.0150.273.5461.31 O(nlogn) O(1)
二路快速排序0.0010.010.090.889.03 O(nlogn) O(1)
归并排序 递归版本0.0020.030.292.6828.69 O(nlogn) O(n)
归并排序 递归版本 A0.0010.0120.161.4415.12 O(nlogn) O(n)
归并排序 迭代版本0.0010.010.141.3714.43 O(nlogn) O(n)
堆排序 递归调整版本0.0010.0120.232.7637.02 O(nlogn) O(1)
堆排序 迭代调整版本0.0010.010.182.4533.76 O(nlogn) O(1)
计数排序-0.0010.0070.0580.59 O(n+k) O(k)
桶排序0.0010.010.130.939.42 O(n+k) O(n+k)
基数排序 10为基数0.0010.0080.070.77.48 O(n·k) O(n+k)
基数排序 2^k 为基数-0.0020.030.22.12 O(n·k) O(n+k)

      (* 红色字体表示该排序算法仅仅支持非负整数排序,该数据为非负整数排序的结果)

 

排序算法——十大排序算法的图示与实现 十大排序算法概览 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 前七种为比较类排序,后三种为非比较类排序。 稳定性:如果a=b,且a在b前面,排序之后仍能保证a在b前面,则为稳定的。 插入排序 逻辑 将左端第一个元素视为有序,然后遍历后面的元素,逐步插入到有序序列中。 代码实现 //插入排序 void 阅读详情

相关推荐

十大经典排序算法

性能对比随机生成区间0 ~ K之间的序列,共计N个数字,利用各种算法进行排序,记录排序所需时间。

Mr.xing的博客 3516

11 种 内部排序算法 大PK(Java 语言实现),究竟谁最快?

11 种内部排序算法

愿你饱经冷暖,仍保纯真 3715

基于STM32的工业设备状态监测系统

工业设备的预测性维护需求日益增长,本文设计了一款基于STM32的智能监测终端,可实时采集设备振动、温度、电流等关键参数,通过边缘计算分析设备健康状态,实现故障预警与能效优化。系统支持4G/LoRa远程通信,适用于工厂、发电站等工业场景。本系统实现了工业设备关键参数的实时监测,故障识别准确率达到92%。:STM32F429(带FPU,支持浮点运算)多参数联合判据(振动+温度+电流突变检测)ACS712电流检测模块(0-30A)FFT频谱分析(识别轴承故障特征频率)故障代码生成(支持16种预设故障类型)

stm32d1219的博客 1325

排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...

先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎不大相同,不知是因为java的缘故还是因为我算法的缘故,欢迎拍砖。 复习排序,顺便比下各种算法的速度,榜单如下: 1、冒泡排序 2、简单选择排序 3、直接插入排序 4、...

261

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 463

COMSOL两相流(相场法)

COMSOL是一款功能非常强大的多物理场仿真软件,拥有可视化和后处理工具,可方便有效的展示您的仿真效果,具有灵活、高效、友好的特点,软件能够为用户提供各类工程问题的解决方案,从而帮助广大研究和工程人员能够在科研上取得新突破。 COMSOL可以实现声学、传热、流体力学、结构力学等方面的模拟仿真,具体模块如下图所示。 COMSOL软件设置流程 定义需要求解的问题类型:针对一个需要仿真的问题,需要先对问题进行分析;分析该问题用到哪些物理场,什么样的几何模型,以及如何设置研究等。该步骤可以使用COMSOL中的

weixin_47139559的博客 1万+

十大排序算法运行速度比较

基数排序已经非常接近计数排序了,当将基数增加到20,位数降到7时,1亿的排序时间是3,432,145,并没有太大区别。当将基数增加到100,位数降到4时,1亿的排序时间是1,979,761。测试数据的最大值就是数据的数量,因此平均1个桶里只有一个数据。当数据范围是[1,N/4)时,1亿个排序时间是7,191,853,更快了一点。尤其是数据规模超过内存上限时,实行分块比较很适合,而且没有辅助内存的需求。冒泡排序比选择排序要慢很多狠多,虽然比较的次数几乎一样。希尔排序在数据量规模不大的时候比快速排序要好。

qiminixi的专栏 1827

CST周期边界仿真:揭秘频率选择表面(FSS)单元设计全流程

本文详细解析了CST周期边界仿真在频率选择表面(FSS)单元设计中的应用全流程。从理论基础到工程实践,涵盖了求解器选择、几何建模、边界设置、端口优化等关键步骤,并提供了常见问题排查指南。通过CST仿真技术,工程师能够高效预测FSS的电磁特性,为实际应用提供可靠的设计依据。

weixin_30571465的博客 358

算法学习笔记(2) 四种排序算法速度比较

导言 在之前介绍快速排序时提到了快速排序的时间复杂度为o(nlogn)o(nlogn)o(nlogn),然而这样的时间复杂度究竟是什么概念,依然没有做出详细的解释。这次将根据插入排序、冒泡排序、选择排序和快速排序四种算法在不同数据规模情况下的排序时间,来对算法时间复杂度的意义进行一定的剖析。 1.1插入排序 插入排序的原理是:对于一个已经从小到大排好序的序列,若往其中插入一个数,要让新序列依然有序...

weixin_43441742的博客 2134

大模型应用开发面试全流程实录:RAG、上下文工程与多Agent协作技术深度解析

Transformer 依靠多头自注意力和位置编码实现高效序列建模。Prompt Engineering包含多种设计思路,如 Zero-shot、Few-shot、Chain-of-thought,提升模型泛化和推理。Token 和上下文窗口直接影响模型性能与成本,选择需结合实际业务场景(如客服对话需长窗口)。Embedding 技术是 RAG 的基础,决定了语义检索效果。向量数据库如 FAISS、Milvus等分别适用于本地/分布式检索。

m0_52114506的博客 828

WPF在特定领域的应用:打造一款专业的图像编辑工具

WPF在特定领域的应用:打造一款专业的图像编辑工具,在软件开发的广阔领域中,Windows Presentation Foundation(WPF)以其强大的图形渲染能力和丰富的用户界面控件,为开发者提供了构建高性能、美观应用程序的平台。图像编辑工具作为一种对图形处理要求极高的应用类型,WPF 的特性使其成为理想的选择。本文将深入探讨如何使用 WPF 打造一款专业的图像编辑工具,涵盖从基础概念到实际代码实现的各个方面。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 6万+

十大经典排序算法(上)

冒泡排序,选择排序,插入排序,希尔排序,归并排序

weixin_68773927的博客 2万+

代谢组数据分析(十五):基于python语言构建PLS-DA分类预测模型

本教程阐述典型代谢组学数据分析工作流程,用于二元分类结果的研究。流程主要步骤如下:首先从 Excel 表格导入代谢物与实验数据,接着基于汇总 QC 进行数据清洗。随后借助主成分分析可视化检查数据质量,再开展两类单变量统计。之后运用偏最小二乘判别分析(PLS - DA)实施多变量分析,此过程涵盖模型优化(对比 R2 与 Q2)、置换测试及明确模型预测指标、确定特征重要性、对模型预测数据进行可视化。最终将统计表格导出至 Excel 表格,完整呈现从数据导入到分析结果输出的全过程。

专注生信领域 2875

十大排序算法(Top 10 Sorting Algorithms)

十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。......

果冻の技术星球 1万+

一篇文章带你快速入门 MATLAB

文章目录一、认识 MATLAB 界面二、MATLAB 的运行方式三、Matlab 中的窗口1. 命令窗口2. MATLAB的程序编辑窗口3. 工作空间窗口4. 命令历史窗口5. 图形窗口6. 当前目录窗口四、MATLAB的帮助系统1. 帮助命令2. 联机帮助五、其他知识补充1. MATLAB的搜索路径2. 变量命名规则3. M文件命名规则 一、认识 MATLAB 界面 在 MATLAB Desktop 中,工具条取代了菜单和工具栏。应用程序库收纳了 MATLAB 产品系列的应用程序,单一文件应用程序打包为一

南淮北安的博客 5128

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

十大经典排序算法——java语言

一、冒泡排序 二、选择排序 三、插入排序 四、希尔排序 五、归并排序 六、快速排序 七、堆排序 八、计数排序 九、桶排序 十、基数排序

weixin_56781779的博客 7037

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

十大经典排序算法详解(一)冒泡排序,选择排序,插入排序

目录1.算法的评判标准2.2.十大经典排序算法2.1-冒泡排序2.2-选择排序2.3-插入排序2.4-希尔排序2.5-归并排序2.6-快速排序2.7-堆排序2.8-计数排序2.9-桶排序2.10-基数排序 1.算法的评判标准 在讲解排序算法之前,我们首先来了解一下评判一个算法一般都是从哪些角度来评判的.其次 2. 2.十大经典排序算法 2.1-冒泡排序 算法思想: 说到 示例代码: public static void main(String[] args) { int []num ={7,4,9,3

lovely__RR的博客 3349

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

十大排序算法总结

排序方法 最好时间复杂度 最坏时间复杂度 平均时间复杂度 辅助空间复杂度 稳定性 博客链接 直接插入排序 O(n)O(n)O(n) O(n2)O(n^{2})O(n2) O(n2)O(n^{2})O(n2) O(1)O(1)O(1) 稳定 插入排序算法 折半插入排序 O(n)O(n)O(n) O(n2)O(n^{2})O(n2) O(n2)O(n^{2})O(n2) O(1)O(1)O(1) 稳定 折半插入排序算法 直接选择排序 O(n2)O(n^{2})O(n2) O(n2)O(n...

大彤小忆的博客 3040

个人总结:十大经典排序算法的C语言实现

大家好,最近我在菜鸟教程上发现了一篇非常详细介绍排序算法的文章,它对各种经典的排序算法进行了深入讲解,包括冒泡排序、插入排序、选择排序、快速排序等等。阅读这篇文章不仅能够帮助初学者更好地理解排序算法的原理和实现方法,也能够帮助有经验的开发者选择适合实际应用的排序算法。冒泡排序(Bubble Sort)选择排序(Selection Sort)插入排序(Insertion Sort)希尔排序(Hill sort)归并排序(Merge Sort)快速排序(Quick Sort)

xiaobuding的博客 1672

算法——排序(十大经典排序算法)

十大经典排序算法的代码实现

helloworld1932的博客 1030

十大排序算法——计数排序

计数排序一. 计数排序介绍二. 计数排序基础版三. 计数排序改进版四. 优化最终版本_空间节省 一. 计数排序介绍 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。它只能对整数进行排序。 算法分析 当输入的元素是n 个0到k之间的整数时,它的运行时间是 O(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。 由于用来计数的数组C的长度取

8434

十大经典排序算法的Java实现

它也是基于分治策略,但与归并排序不同,快速排序的核心在于分区(partitioning),快速排序占用的空间相对较低,在特点情况下的速度高于归并排序,有很多人说Java底层采用的是快速排序,这种说法有点浅显了,Java底层的排序会根据具体场景选择最优的排序算法。大顶堆保证的是根节点的数值最大,并不能保证叶子节点是有序的,它不是二叉搜索树,所以我们通过构建大顶堆,并不断地取出堆顶的数并放到数组尾部、不断地维护大顶堆,就可以实现升序排序了。时间复杂度为n+k,其中k为待排序数组中最大的数。

m0_63570394的博客 2169

python实现十大排序算法

算法和数据结构是程序员的必修课 前两篇博文我们分别用C++和Java实现了十大排序算法 C++实现十大排序算法 Java实现十大排序算法 现在我们用python来实现一下十大排序算法 具体代码可以访问我的GitHub地址获取 https://github.com/liuzuoping/Algorithms 1 冒泡排序 冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以...

liuzuoping的博客 1541

算法基础-十大排序算法

十大排序算法 排序就是将一组对象按照某种逻辑顺序重新排列的过程。 冒泡排序、简单选择排序、简单插入排序、希尔排序、归并排序、堆排序、计数排序、桶排序、基数排序。 排序方法对比

备忘录 379

1.十大排序算法

十大排序算法的概览总结。

virgil 4222
上一篇: python控制台实现俄罗斯方块
下一篇: 基本排序算法 之一 ——冒泡排序
晨晚_
博客等级 码龄9年 10粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值