软件设计师-排序算法

冒泡排序

  • 每一趟冒泡排序,从第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)
相关推荐
网络冒险家9 小时前
【信息系统项目管理师教程 第4版】第4章 信息系统管理
软考·信息系统项目管理师
赵得C13 小时前
2025下半年软件设计师考前几页纸
java·开发语言·分布式·设计模式·性能优化·软考·软件设计师
网络冒险家1 天前
【信息系统项目管理师教程 第4版】第2章 信息技术发展
软考·信息系统项目管理师
唐僧洗头爱飘柔95273 天前
【软考:程序员(01)】如何考得程序员证书?本片知识点:操作系统基本概念、操作系统的分类、进程管理、三态模型、信号量机制、同步与互斥模型
程序员·软考·实时操作系统·信号量机制·批处理操作系统·三态模型·同步与互斥模型
_Minato_5 天前
数据库知识整理——数据库设计的步骤
数据库·经验分享·笔记·软考
_Minato_7 天前
数据库知识整理——数据库控制功能
数据库·经验分享·笔记·软考·计算机系统
Jerry952706287 天前
3.集群与分布式
分布式·架构·架构师·软考·高性能·高可用·架构设计师
zhr_math_king11 天前
记我的软考历程-备忘
软考·感想
牧歌悠悠14 天前
【软考高项】第六章-第一节 PMBOK的发展
软考·高项·备考·软考达人
程序员古德15 天前
软考真题“论基于云原生数据库的企业信息系统架构设计”,以某跨境电商ERP为例!
软考·软考真题·软考考试·软考成绩·软考资料·软考2026