软考——常用排序算法

这篇具有很好参考价值的文章主要介绍了软考——常用排序算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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—路归并最为简单和常用

软考——常用排序算法

 文章来源地址https://www.toymoban.com/news/detail-463427.html

到了这里,关于软考——常用排序算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 排序算法 —— 直接插入排序(图文超详细)

    直接插入排序是一个比较简单的排序算法。作用是将一组数排序成升序的。 元素集合越接近有序,直接插入排序算法的时间效率越高。 时间复杂度:O(n^2) 空间复杂度:0(1),它是一种稳定的排序算法。 稳定性:稳定 下面以 5 4 3 6 2 这组数作为例子来讲解。 直接插入排序就像

    2024年02月08日
    浏览(33)
  • 【数据结构】常见排序算法——常见排序介绍、插入排序、直接插入排序、希尔排序

      在计算机科学中,排序是将一组数据按照指定的顺序排列的过程。排序算法由于执行效率的不同可以分为多种不同的算法。   通常情况下,排序算法可以分为两类,即 内部排序和外部排序 。内部排序是指数据全部加载到内存中进行排序,适用于数据量较小的情况,而

    2024年02月08日
    浏览(60)
  • 直接插入排序、希尔排序、直接选择排序、堆排序、冒泡排序——“数据结构与算法”

    各位CSDN的uu们你们好呀,今天小雅兰的内容是数据结构与算法啦,是排序!!!下面,让我们进入七大排序的世界吧!!! 排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在

    2024年02月15日
    浏览(65)
  • C语言--直接插入排序【排序算法|图文详解】

    直接插入排序又叫简单插入排序,是一种 简单直观 的排序算法,它通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。 算法描述: 假设要排序的列表为arr,列表的第一个元素arr[0]默认已经是有序序列。 从第二个元素开始,即arr[

    2024年01月19日
    浏览(43)
  • 【数据结构与算法】直接插入排序和希尔排序

    进入了初阶数据结构的一个新的主题——排序。所谓排序,就是一串记录, 按照其中的某几个或某些的大小(一定的规则) , 递增或递减排列起来的操作 。 排序的 稳定性 :在一定的规则下,两个值相等的元素,在排序算法处理前后的相对位置是否发生变化,如果相

    2024年04月13日
    浏览(41)
  • 【数据结构】详解七大排序算法(直接插入排序、希尔排序、直接选择排序、堆排序、冒泡排序、快速排序)

    1、基本思想    把待排序的数按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所以的记录插入完为止,得到一个新的有序序列。    实际中我们玩扑克牌时,就用到了插入排序的思想 基本步骤:    当插入第i个元素时,前面的arr[0]、arr[2]…arr

    2024年02月04日
    浏览(72)
  • 【排序算法】一、排序概念和直接插入排序(C/C++)

    「前言」文章内容是排序算法之 直接插入排序 的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些的大小, 递增或递减 的排列起来

    2024年01月22日
    浏览(40)
  • 稳定的排序算法:直接插入排序和冒泡排序 (c++实现)

    1.直接插入排序: 插入排序:就是把数组分为左右两个序列,保持左边序列中所有元素是有序的,(当左边序列只有第一个元素时,本身就是有序的,)每次往后移一个,将这个元素保存起来,跟左边的元素进行比较,直到找到第一个小于它的元素后停下,此时的位置是这个

    2024年02月10日
    浏览(43)
  • c语言编写排序算法——直接插入排序(附详细代码)

    记号说明: a[k:r] 是指序列 a[k] a[k+1] a[k+2] … a[r] 。 为了讨论简单,假设待排序的每个记录是一个整数,这个整数就是排序码。 直接插入排序 :先将第一个记录看作是一个有序的记录序列,然后从第二个记录开始,依次将未排序的记录插入到这个有序的记录序列中去,直到整

    2024年02月11日
    浏览(40)
  • 数据结构--7.2.1排序算法(冒泡、直接选择、直接插入)

            假设含有n个记录的序列为{r1,r2,……,rn},其相应的分别为{K1,K2,……,Kn},需确定1,2,3,……,n的一种排序p1,p2,p3,……,pn;使其相应的满足kp1=kp2=kp3=kp4=……=kpn非递减(或非递增)关系,即使得序列称为一个按有序得序列{rp1,rp2,

    2024年02月07日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包