**五种内部排序算法性能比较 **

1.直接插入排序算法
将一个待排序的记录插入到若干个已排好序的有序记录中的适当位置,从而得到一个新的、记录数增加1的有序数据序列,直到插入完成。在最开始,整个有序数据序列只有一个数据,当全部数据插入完毕后,整个数据序列有序,并且在最后一个数据插入有序数据序列之前,每一个数据所在位置都不一定是最终位置,只能够是相对最终位置。
2.简单选择排序
选择类排序的核心是“选择”,即每一趟排序都选择出最大(或最小)的记录,把它和整个数据序列中的最后一个(或者第一个)数据交换,这样最大(或最小)的记录到达其最终位置,如此循环,直到每一个数据都被选择一次和交换一次后,整个数据序列变为有序序列。
3.希尔排序
希尔排序又叫缩小增量排序,其本质还是插入排序,只不过是将几个待排序的序列按某种规则分成几个子序列,分别对这几个子序列进行直接插入排序。这个规则就是增量,前面讲到过,直接插入排序适用于序列基本有序的情况,希尔排序的每趟序列都会使整个序列更加有序,等整个序列有序了再来一趟直接插入排序,这样会使排序效率更高,这就是希尔排序的思想[7]。
4.归并排序
所谓归并就是将两个或者两个以上的有序序列合并为一个新的有序序列,归并类排序就是基于这种思想。二路归并就是每次将两个有序序列合并为一个有序序列[4]。
5.快速排序
快速排序是“交换”类的排序,其核心是“交换”,每一趟排序,都是通过一系列的交换动作完成的,让一个记录到达它的最终位置,一趟快速排序是以一个“枢轴”为中心[1],将序列分成两部分,枢轴的一边全是比它小(或者是小于等于)的,另一边全是比它大(或者是大于等于)的[2]。

程序演示图

一万数据量排名

二万数据量排名

五万数据量排名

十万数据量排名

二十万数据量排名

本程序提供上述五种内部排序的性能比较
分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果。以c语言控制台画出的表格形式呈现。
这里提供源码下载

五种内部排序算法性能比较——C++相关推荐

  1. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  2. 五种常用排序算法总结

    本篇文章讲的是以下五种常用的排序算法: 一.冒泡排序 1.原理 每次从前往后遍历整个数组,每一项与其后一项进行对比,若符合要求(从大到小或从小到大),就交换位置. 一遍循环结束后,最大(小)的值就会被 ...

  3. python 实现数据结构八种内部排序算法

    目录 一.插入排序 二.希尔排序 三.冒泡排序 四.快速排序 五.选择排序 六.堆排序 七.归并排序 八.基数排序 一.插入排序 array_test = [8,3,5,1,10,4,2,6,7,9] ...

  4. 数据结构实验:内部排序算法的性能分析

    文章目录 前言 一.问题描述 二.问题分析 三.实验结果及分析 (1)实验数据描述 (2)实验结果 (3)性能分析 四.源代码 前言 记录下本学期的数据结构实验 本实验主要集中于比较几种内部排序算法 ...

  5. 飞鸽传书内部排序算法的性能比较

    部排序算法的性能比较 飞鸽传书内部排序算法的性能比较 1)排序的稳定性及分析: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=r ...

  6. 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。

    题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...

  7. 数据结构之内部排序算法总结笔记

    内部排序算法  排序的基本概念: 把一组无序的数据元素按照关键字值递增(或递减)的顺序重新排列.  一.插入排序 思想:将序列分为[有序段]与[无序段]两段,然后依次将[无序段]中的元素插入到[有序段 ...

  8. 【算法导论】 内部排序算法总结

    排序名称 时间复杂度 空间复杂度 稳定性 直接插入排序 O(n^2) O(1) 稳定 折半插入排序 O(n^2) O(1) 稳定 希尔排序 O(n^2) O(1) 不稳定 冒泡排序 O(n^2) O( ...

  9. 深圳大学算法实验一——排序算法性能分析

    深圳大学算法实验一 一.实验目的与要求 1. 掌握九种排序算法原理 2. 掌握不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性. 3. 对多种排序算法提出改进方案 4. 综合比较各种 ...

最新文章

  1. 事件委托技术原理和使用(js,jquery)
  2. 我在信息学奥赛上,用Bug直接改了验算数据,拿了满分算作弊嘛?
  3. SQL99标准中的查询(MySQL)
  4. WebUploader 设置单个文件上传
  5. Struts2的两个蝴蝶飞,你好简单开发(一)
  6. C语言实现AES加密解密
  7. 苹果公布了一些最新无人车进展,但,研发依然缓慢
  8. .NET反编译工具Reflector及插件Reflector.FileDisassembler.dll
  9. Ubuntu16.4配置caffe详细流程
  10. web网站制作的实例(大学生期末作业)集合
  11. 计算机办公自动化试题及答案,计算机等级考试,办公自动化考试试题(三)
  12. 懂一些数据分析工具,为啥还要考CPDA数据分析师证书?
  13. Android5.1打开Emmagee显示错误
  14. SAN SWITCH zoning 划分及some command
  15. 618来了云服务器商家疯了
  16. 薛定谔教程--Glide分子对接 | Ligand Docking
  17. js实现520倒计时
  18. 计算机可以辅助英语写作吗,计算机辅助下的英语写作教学_问答库
  19. http://blog.csdn.net/jame_peng
  20. 如何给1000万条记录排序,每条记录都是7位的整数

热门文章

  1. 懒人安装Kali Linux桌面环境或工具包的方法
  2. annotate 和 aggregate
  3. db2 java存储过程,db2存储过程 - 辜圆圆的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 概率图模型基础(5)——朴素贝叶斯
  5. PPTX|2021消防安全月启动培训课件(120页)(附下载)
  6. Linux 路由表详解及 route 命令详解
  7. 解决office2003与office2007共存问题
  8. cp: cannot create regular file '/media/lxl/wdd/boot/vxworks-cu2': Read-only file system
  9. JS的EventSource实时接收服务端推送的数据
  10. 计算机达人成长之路(2)连载