目录

1,直接插入排序

2,折半插入排序

3,希尔排序

4,冒泡排序

5,快速排序

6,简单选择排序

7,堆排序

8,归并排序


各种排序方法的特性

稳定性若在待排序的一个序列中,Ri和Rj的关键码相同,即Ri=Rj,且在排序前Ri领先于Rj,那么当排序后,如果Ri和Rj的相对次序保持不变,Ri依然领先于Rj,则称此类排序算法是稳定的,否则就是不稳定的

内部排序指待排序记录全部存放在内存中进行排序的过程

外部排序指待排序记录的数量很大,以至内存不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程

1,直接插入排序

是一种最简单的排序算法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。当有序表为空时,该记录插入在有序表第一位。

直接插入排序的时间复杂度O() ,空间复杂度O(1)

2,折半插入排序

折半插入排序是通过折半查找来实现的。

时间复杂度是O(),空间复杂度是O(1)

 3,希尔排序

希尔排序实质上是采用分组插入的方法。

先将整个待排序记录序列分割成几组,从而减少参与直接插入排序的数据量,对每组分别进行直接插入排序,然后增加每组的数据量,重新分组

这样当经过几次分组排序后,整个序列中的记录“基本有序”时,再对全体成员进行一次直接插入排序

时间复杂度是O(),空间复杂度是O(1)

 4,冒泡排序

是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,使得小的记录往左移,大的记录往右移

时间复杂度是O(),空间复杂度是O(1)

 5,快速排序

快速排序实质上就是每次从待排序记录序列中选出一个基准元素,把比基准元素小的放在基准元素的左边,比基准元素大的放在基准元素的右边。然后对基准元素左右的记录序列继续进行排序

 6,简单选择排序

也称为直接选择排序。每一趟从第一个元素开始,进行比较,每一趟选出待排序记录序列中的最小值,放在已排序好的记录序列的最后面

时间复杂度为O(),空间复杂度为O(1)

7,堆排序

大根堆:根结点的值 >=(大于等于)左右子节点的值

小根堆:根结点的值 <=(小于等于)左右子节点的值

知识点记住,具体运行过程有印象即可。

 8,归并排序

归并排序就是将两个或两个以上的有序表合并成一个有序表的过程

将两个有序表合并成一个有序表的过程称为2—路归并,2—路归并最为简单和常用

软考——常用排序算法相关推荐

  1. 常用排序算法对比(时间复杂度、稳定性)

    常用排序算法对比

  2. 视觉直观感受7种常用排序算法

    视觉直观感受若干常用排序算法 1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状 ...

  3. C++STL常用排序算法

    C++STL常用排序算法 学习目标 算法简介 sort 功能描述 函数原型 示例 总结 random_shuffle 功能描述 函数原型 示例 总结 merge 功能描述 函数原型 示例 总结 rev ...

  4. java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析

    0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...

  5. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  6. 机器学习(二十二)——推荐算法中的常用排序算法, Tri-training

    推荐算法中的常用排序算法 Pointwise方法 Pranking (NIPS 2002), OAP-BPM (EMCL 2003), Ranking with Large Margin Princi ...

  7. [转载] java实现四种常用排序算法

    参考链接: 用Java排序 四种常用排序算法 ##注:从小到大排 ##冒泡排序## 特点:效率低,实现简单 思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有 ...

  8. Visual C# 诠释常用排序算法

    Visual C# 诠释常用排序算法 前段时间因为项目需要,做了个用来对数组排序的类,顺便把以前学过的几种排序算法用C#实现一下.用C#的一些机制来诠释了一下算法的是实现.在阅读本之前,需要一些对C# ...

  9. 各种常用排序算法的时间复杂度和空间复杂度

    https://blog.csdn.net/jiajing_guo/article/details/69388331 一.常用排序算法的时间复杂度和空间复杂度表格 二.特点 1.归并排序: (1)n大 ...

最新文章

  1. 对分组交换(packet switching)高效迅速灵活可靠四个优点的理解
  2. i love you 浪漫字体复制_2020高考英语全国I、II、III卷语篇来源!欢迎转发交流!...
  3. Python(数据库之表操作)
  4. SQL基础操作_8_基础概念
  5. linux二重启动防止
  6. C语言的数据类型→浮点型数据
  7. discuz论坛添加水印
  8. 兼容性极好的圆角边框
  9. **角点检测(Harris)基于Opencv2.4.9版本+VS2012开发平台进行编**
  10. 第一个Activity传到第二个Activity
  11. VOD紧急抱团是利是弊?
  12. 大牛手把手带你!mysql视频教程百度网盘
  13. 2018年河南省高中计算机考试,【改革 】 2018年河南中考将采取4+6+1模式,高中自主招生已确定...
  14. dreamweaver html模版,dw网页设计模板
  15. 【数学模型】基于Volterra理论的捕食模型
  16. 小武学fpgastep3
  17. html5页面正文内容标签,HTML5 结构标签
  18. 计算机运维方向要考什么证,IT运维项目经理考的证
  19. L1_SVD方法的稀疏矩阵的DOA估计
  20. 【工具】目前几种常见的线上接口文档管理平台的比较

热门文章

  1. 调试代码错误1:legacy-install-failure、subprocess-exited-with-error
  2. OpenGL 纹理贴图
  3. 线性结构和非线性结构 - 数据结构基础
  4. 按图搜索商品(拍立淘) API
  5. 实现解决843端口安全策略问题心得
  6. 乐逗游戏签约超萌的消除类益智游戏birzzle
  7. 办公专用计算机配置,适合普通家用/办公的电脑主机 2019年普通家用/办公电脑配置推荐...
  8. d你好Arduino
  9. 一个新入职同事的真实工作思考总结,写的很生动
  10. 商标注册流程,商标注册材料