软件设计师-排序算法

冒泡排序

  • 每一趟冒泡排序,从第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)
相关推荐
widder_12 小时前
软考软件设计师中级——软件工程笔记
软件工程·软考·软件设计师
christine-rr2 天前
【25软考网工】第六章(4)VPN虚拟专用网 L2TP、PPTP、PPP认证方式;IPSec、GRE
运维·网络·网络协议·网络工程师·ip·软考·考试
it技术分享just_free2 天前
软考教材重点内容 信息安全工程师 第24章 工控安全需求分析与安全保护工程
web安全·网络安全·信息安全·系统安全·软考
格鸰爱童话3 天前
软考错题(三)
软考
PengShuaiD53 天前
【软考-高级】【信息系统项目管理师】论文写作注意事项及2014年至2024年历年论文题目汇总
软考·高项·信息系统项目管理·高项历年论文真题
编程小海浪3 天前
【论信息系统项目的质量管理】
软考·信息系统项目管理师·质量管理·系统集成项目管理工程师·信息系统·软考论文·2025软考论文
尸僵打怪兽4 天前
软考错题集
java·python·计算机网络·操作系统·c·软考·计算机组成原理
软考考神5 天前
2025软考【系统架构设计师】:两周极限冲刺攻略(附知识点解析+答题技巧)
软考·系统架构设计师
碎梦归途6 天前
23种设计模式-行为型模式之模板方法模式(Java版本)
java·开发语言·jvm·设计模式·软考·模板方法模式·软件设计师
christine-rr8 天前
【25软考网工】第五章(8)路由协议RIP、OSPF
运维·网络·网络工程师·软考·考试