软件设计师-排序算法

冒泡排序

  • 每一趟冒泡排序,从第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)
相关推荐
夜听莺儿鸣1 天前
901-005_系统分析师基础知识-计算机网络与分布式系统
计算机网络·软件工程·软考·系统分析师
向上的车轮4 天前
软考「系统规划与管理师(第2版)」「信息系统与信息技术发展」
软考·软考系规
@insist1235 天前
系统集成项目管理工程师-采购、风险与干系人管理
网络·软考·系统集成项目管理工程师·软考中项·软件水平考试
@insist1235 天前
系统集成项目管理工程师-资源管理+沟通管理+风险管理
软考·系统集成项目管理工程师·软考中项·软件水平考试
幻风_huanfeng6 天前
高级软件架构师学习笔记----案例分析总览
系统架构·架构师·软考
_默_6 天前
软考中级—软件评测师 备考笔记:信息安全基础知识及信息化基础知识
软考·软考中级·评测师
我是胡杨学长7 天前
低分上岸”是报名时选出来的:软考单独划线,考后系统不受理
职场·软考·职业·系统集成项目管理师·单独划线
@insist1239 天前
系统集成项目管理工程师-法律法规体系与常用法律
软考·系统集成项目管理工程师·软考中项·软件水平考试
ONEP软考智能体10 天前
系规PPTR 四要素:贯穿服务生命周期的知识要点
软考·系统规划与管理师·软考论文·系规·onep智能体·软考peter·onep软考
@insist12311 天前
系统集成项目管理工程师-配置管理角色与活动
数据库·软考·系统集成项目管理工程师·软考中项·软件水平考试