软件设计师-排序算法

冒泡排序

  • 每一趟冒泡排序,从第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)
相关推荐
@insist1231 天前
网络工程师-因特网与网络互联(四):传输层协议,TCP 与 UDP 的可靠与高效之道
网络·网络工程师·软考·软件水平考试
zlp19922 天前
软考(系统架构师)-企业应用集成
软考高级·软考·系统架构师·软考备考
@insist1232 天前
网络工程师-因特网与网络互联(一):IPv4 协议精讲,从分类地址到子网划分
网络·网络工程师·软考·软件水平考试
@insist1232 天前
网络工程师-因特网与网络互联(二):ARP 与 ICMP,网络层排错双雄
服务器·网络·网络协议·网络工程师·软考·软件水平考试
@insist1233 天前
网络工程师-广域网与接入网技术(二):光传输网(SDH/SONET)与移动承载网
网络·网络工程师·软考·软件水平考试
zlp19924 天前
软考(系统架构师)-新技术
软考高级·软考·系统架构师
Kethy__4 天前
计算机中级-数据库系统工程师-数据结构-查找算法
数据结构·算法·软考·查找算法·计算机中级
猹叉叉(学习版)4 天前
【系统分析师_知识点整理】 15.数学计算与知识产权
笔记·软考·知识产权·系统分析师
xy34534 天前
软件评测师基础知识专项刷题:编译、解释、汇编(1)
刷题·软考·编译·备考·软件设计师·软件评测师
@insist1234 天前
网络工程师-WLAN 无线局域网全解析
大数据·网络·网络工程师·软考·软件水平考试