软件设计师-排序算法

冒泡排序

  • 每一趟冒泡排序,从第0个元素开始,和后面的元素比较,如果大于就交换,否则不变,每次冒泡可以把最大的元素放到最后一个,第一次冒泡的终点是n-1,第二趟的是n-2,直到最后剩下一个元素。
  • 时间复杂度O(n^2),稳定的排序算法

插入排序

  • 在插入第i个元素是,前i-1个元素已经排序好,将第i个元素和i-1,i-2依次比较,找到插入的位置,并把插入位置及以后的依次后移
  • 时间复杂度O(n^2),稳定的排序算法

归并排序

  • 两路归并排序的核心是将一维数组中前后相邻的两个有序序列归并为一个有序的序列
  • 分治思想,把数组分成两个部分,对前后两个部分作归并排序,排序完合并,使用了递归,最后只有一个元素的时候递归返回
  • 时间复杂度O(nlogn),空间复杂度O(n)

堆排序

  • 升序排序先构建大顶堆,然后每次把堆顶元素放到后面,再重新构建堆
  • 时间复杂度O(nlogn)

希尔排序

  • 取Gap作为增量,把相隔Gap的数字作直接插入排序,减少Gap直到1,数组有序
  • 不稳定的排序算法,时间复杂度O(nlogn),空间复杂度O(1)

快速排序

  • 使用分治思想,选择一个锚点,一次排序后比锚点小的都在左边,大的都在右边,根据锚点的位置,递归调用快速排序
  • 稳定,时间复杂度O(nlogn),空间复杂度O(logn)
相关推荐
庄小焱16 天前
【2025软考高级架构师】——2024年11月架构真题解析
软考高级·软考·系统架构师·软考真题解析
oscar99917 天前
再看软考与职称及软考的价值
软考·资格
程序员古德17 天前
25年11月软考架构真题《论云原生数据库》考后复盘总结
软考高级·软考·系统架构设计师·软考论文
这不小天嘛20 天前
万字整理:软考中级软件设计师错题本
软考·软件设计师
一个不知名程序员www20 天前
软考中级软件设计师(下午题)--- UML建模
软考·uml·软件设计师
希赛网21 天前
倒计时两天!软考网络工程师案例分析模拟题
网络·网络工程师·软考·案例分析题·考前复习
YAY_tyy21 天前
“IP 地址” 咋分类?用 “电话号码分区” 讲透 A/B/C 类地址
软考·软件设计师
星云数灵21 天前
【计算机软件资格考试】软考综合知识题高频考题及答案解析6
软考·信息系统项目管理师·系统集成项目管理工程师·软考高项·计算机软件资格考试·综合知识·软考综合知识
奥尔特星云大使22 天前
《系统规划与管理师教程(第2版)》方法篇 第10章 云原生系统规划 知识点总结
云原生·软考·高级·系规
星云数灵25 天前
【计算机软件资格考试】软考综合知识题高频考题及答案解析2
软考·信息系统项目管理师·系统集成项目管理工程师·软考高项·软考中级·计算机软件资格考试·软考综合分析