五种内部排序算法性能比较——C++
**五种内部排序算法性能比较 **
1.直接插入排序算法
将一个待排序的记录插入到若干个已排好序的有序记录中的适当位置,从而得到一个新的、记录数增加1的有序数据序列,直到插入完成。在最开始,整个有序数据序列只有一个数据,当全部数据插入完毕后,整个数据序列有序,并且在最后一个数据插入有序数据序列之前,每一个数据所在位置都不一定是最终位置,只能够是相对最终位置。
2.简单选择排序
选择类排序的核心是“选择”,即每一趟排序都选择出最大(或最小)的记录,把它和整个数据序列中的最后一个(或者第一个)数据交换,这样最大(或最小)的记录到达其最终位置,如此循环,直到每一个数据都被选择一次和交换一次后,整个数据序列变为有序序列。
3.希尔排序
希尔排序又叫缩小增量排序,其本质还是插入排序,只不过是将几个待排序的序列按某种规则分成几个子序列,分别对这几个子序列进行直接插入排序。这个规则就是增量,前面讲到过,直接插入排序适用于序列基本有序的情况,希尔排序的每趟序列都会使整个序列更加有序,等整个序列有序了再来一趟直接插入排序,这样会使排序效率更高,这就是希尔排序的思想[7]。
4.归并排序
所谓归并就是将两个或者两个以上的有序序列合并为一个新的有序序列,归并类排序就是基于这种思想。二路归并就是每次将两个有序序列合并为一个有序序列[4]。
5.快速排序
快速排序是“交换”类的排序,其核心是“交换”,每一趟排序,都是通过一系列的交换动作完成的,让一个记录到达它的最终位置,一趟快速排序是以一个“枢轴”为中心[1],将序列分成两部分,枢轴的一边全是比它小(或者是小于等于)的,另一边全是比它大(或者是大于等于)的[2]。
程序演示图
一万数据量排名
二万数据量排名
五万数据量排名
十万数据量排名
二十万数据量排名
本程序提供上述五种内部排序的性能比较
分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果。以c语言控制台画出的表格形式呈现。
这里提供源码下载
五种内部排序算法性能比较——C++相关推荐
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- 五种常用排序算法总结
本篇文章讲的是以下五种常用的排序算法: 一.冒泡排序 1.原理 每次从前往后遍历整个数组,每一项与其后一项进行对比,若符合要求(从大到小或从小到大),就交换位置. 一遍循环结束后,最大(小)的值就会被 ...
- python 实现数据结构八种内部排序算法
目录 一.插入排序 二.希尔排序 三.冒泡排序 四.快速排序 五.选择排序 六.堆排序 七.归并排序 八.基数排序 一.插入排序 array_test = [8,3,5,1,10,4,2,6,7,9] ...
- 数据结构实验:内部排序算法的性能分析
文章目录 前言 一.问题描述 二.问题分析 三.实验结果及分析 (1)实验数据描述 (2)实验结果 (3)性能分析 四.源代码 前言 记录下本学期的数据结构实验 本实验主要集中于比较几种内部排序算法 ...
- 飞鸽传书内部排序算法的性能比较
部排序算法的性能比较 飞鸽传书内部排序算法的性能比较 1)排序的稳定性及分析: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=r ...
- 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。
题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...
- 数据结构之内部排序算法总结笔记
内部排序算法 排序的基本概念: 把一组无序的数据元素按照关键字值递增(或递减)的顺序重新排列. 一.插入排序 思想:将序列分为[有序段]与[无序段]两段,然后依次将[无序段]中的元素插入到[有序段 ...
- 【算法导论】 内部排序算法总结
排序名称 时间复杂度 空间复杂度 稳定性 直接插入排序 O(n^2) O(1) 稳定 折半插入排序 O(n^2) O(1) 稳定 希尔排序 O(n^2) O(1) 不稳定 冒泡排序 O(n^2) O( ...
- 深圳大学算法实验一——排序算法性能分析
深圳大学算法实验一 一.实验目的与要求 1. 掌握九种排序算法原理 2. 掌握不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性. 3. 对多种排序算法提出改进方案 4. 综合比较各种 ...
最新文章
- OpenCV中XML文件和YAML文件的读写
- ES6中新增字符串方法,字符串模板
- SQL Server 堆heap 非聚集索引 Nonclustered index 行号键查找RID loopup结合执行计划过程详解
- zookeeper 命令
- 可重入锁(递归锁) 互斥锁属性设置
- 财务一体化项目,进度与计划11
- 仿写简单的vue虚拟dom
- 中国汉字大全 免费下载
- python使用matplotlib可视化矢量流场图、使用streamplot函数可视化矢量流场图、矢量流场图包含坐标和方向
- java 光通信_超通俗易懂科普:什么是光通信?
- PPT设置自动生成页码
- android app 设计,安卓APP新手设计教程:19条Android设计经验大全
- 赵燕菁:城市化2.0与规划转型 ——一个两阶段模型的解释│宏论
- 20年进入下半赛程,你变强了吗?
- html 导出 excel 列宽,Html2Excel 更名为 MyExcel,2.1.0 版本发布!
- h5 js 打开微信客户端
- 知识图谱---简单实践(学习笔记)
- 如何删除WhatsApp消息
- S3DIS场景点云数据集
- 已解决_mssql.MSSQLDatabaseException: (2627, b“Violation of PRIMARY KEY constraint ‘PK__TM_DATA___7BDCF2