软件设计师-排序算法

冒泡排序

  • 每一趟冒泡排序,从第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)
相关推荐
ba_pi2 天前
每天写点什么2026-01-28-(1.1)信息与信息化
软考·高项·信息系统项目管理师
不凉帅3 天前
NO.5软件工程
软件测试·软件工程·软考·软件开发·软件项目管理
ba_pi3 天前
每天写点什么2026-01-28-(1.2)现代化基础设施
软考·高项
BOB-wangbaohai5 天前
软考-系统架构师-区块链
区块链·软考·系统架构师
fo安方6 天前
软考~系统规划与管理师考试——真题篇——章节——第10章 云原生系统规划——解析版
云原生·项目管理·系统·软考·pmp·规划
不凉帅7 天前
NO.4信息安全技术基础知识
网络安全·信息安全·软考·高项·加密
数据与后端架构提升之路7 天前
论多源数据集成技术在半导体良率分析平台中的应用
论文·软考·多源数据
数据与后端架构提升之路8 天前
论微服务架构在电商交易系统中的设计与应用
微服务·架构·软考
BOB-wangbaohai8 天前
软考-系统架构师-信息安全架构
信息安全·软考·系统架构师·安全架构
fo安方9 天前
软考~系统规划与管理师考试—知识篇—第二版—17.信息系统项目管理
项目管理·软考·pmp