各类排序算法优缺点对比
1.插入排序
基本思想:
将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
优点:稳定,快
缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候
2.希尔排序
基本思想:
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。
优点:快,数据移动少
缺点:不稳定,d的取值是多少,应取多少个不同的值,都无法确切知道,只能凭经验来取
3.简单选择排序
基本思想:
将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
优点:数据移动次数已知为(n-1)次
缺点:比较次数多
4.冒泡排序
基本思想:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
优点:稳定
缺点:慢,每次只能移动相邻两个数据
5.快速排序
基本思想:
1)选择一个基准元素,通常选择第一个元素或者最后一个元素,
2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比 基准元素值小。另一部分记录的 元素值比基准值大。
3)此时基准元素在其排好序后的正确位置
4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。
优点:极快,数据移动少.
缺点:不稳定
6.归并排序
归并排序是一种非就地排序,将需要与待排序序列一样多的辅助空间。在使用它对两个己有序的序列归并,将有无比的优势。其时间复杂度无论是在最好情况下还是在最坏情况下均是O(nlog2n)。对数据的有序性不敏感。若数据节点数据量大,那将不适合。但可改造成索引操作,效果将非常出色。
7.简单选择排序
堆排序:由于它在直接选择排序的基础上利用了比较结果形成。效率提高很大。它完成排序的总比较次数为O(nlog2n)。它是对数据的有序性不敏感的一种算法。但堆排序将需要做两个步骤:-是建堆,二是排序(调整堆)。所以一般在小规模的序列中不合适,但对于较大的序列,将表现出优越的性能。
各类排序算法优缺点对比相关推荐
- 各类排序算法汇总及动画演示(C语言)
常用排序算法及动画演示 (一)插入排序 插入排序可形象理解为打扑克时理牌的一个过程,具体分为直接插入.折半插入排序.希尔排序三种: ①直接插入排序 void InsertSort(int a[],in ...
- 各类排序算法总结(作者:__Boost)
各类排序算法总结 一. 排序的基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列. 有 n 个记录的序列{R1 ...
- JAVA堆排序有监视哨吗_数据结构-各类排序算法总结
各类排序算法总结 一. 排序的基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列. 有 n 个记录的序列{R1 ...
- 八大排序算法时间复杂度对比
八大排序算法时间复杂度对比
- 【机器学习】机器学习算法优缺点对比(汇总篇)
作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...
- 机器学习算法优缺点对比及选择(汇总篇)
杜博亚 本文的目的,是务实.简洁地盘点一番当前机器学习算法.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的经验,将对此模型优缺点及选择详加讨论. ...
- 「机器学习」机器学习算法优缺点对比(汇总篇)
作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...
- 机器学习算法优缺点对比及选择(汇总篇)
转自:机器学习与统计学 本文的目的,是务实.简洁地盘点一番当前机器学习算法.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的经验,将对此模型优缺点及 ...
- 机器学习算法优缺点对比及选择
文章目录 偏差&方差 常见算法优缺点 朴素贝叶斯 Logistic Regression(逻辑回归) 线性回归 最近邻算法--KNN 决策树 ID3.C4.5算法 CART分类与回归树 Ada ...
最新文章
- 简单三步-实现dede站内搜索功能
- 用Ajax 构建关键任务的企业级Web 应用 ——《深入 Ajax :架构与最佳实践》
- 皮一皮:外语学的好,就是这么溜~
- oracle 窗口函数over
- 洛谷P3155:叶子的染色(树形dp)
- wxPython4.0中ListCtrl入门
- pip install flask-mongoengine报错
- TestComplete自动化测试视频教程
- Git客户端操作GitHub
- 地市级地铁数据管理信息系统解决方案
- 思源宋体安装过程记录
- xpwifi热点设置android,笔记本xp系统wifi热点设置教程(图文)
- java超市购物系统类图,UML实例(四):在线购物系统顺序图
- 60MongoDB学习笔记
- 洛谷P2678 Java解法
- 【Luat-esp32】3.陀螺仪-mpu6050
- 一文读懂css的相对定位【relative position】以及相对定位为什么要设置偏移量?
- Mellanox网卡FW刷新方法
- Matlab网页交互
- Shellshock(破壳)系列漏洞简要分析及检测
热门文章
- java计算机毕业设计汽车租赁平台的设计与实现源码+数据库+lw文档+系统
- android7.1.2彩蛋,在Android 7.0牛轧糖中解锁秘密猫收集复活节彩蛋 | MOS86
- 基于结构光的三维测量学习笔记
- Arcgis面积测量
- IBM宣布拆分管理基础设施服务部门;中国是全球最大工业机器人市场有78.3万台在运行 | 美通企业日报...
- CLC(ClearCarry Flag)
- 解决RecycleView局部刷新iteam时, EditText抢占焦点问题
- 8825驱动电路的设计思路
- Android搭建WebSocket服务端
- Java 调用Shell脚本