ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

我的第一本算法书 第二三四章

2022-09-03 21:30:08  阅读:161  来源: 互联网

标签:三四 第一本 基准值 复杂度 算法 查找 搜索 顶点 排序


第2章 排序

2.1 什么是排序

将输入的数字按照从小到大的顺序进行排列

2.2 冒泡排序

  • 从右开始, 两两比较. 逐渐将最小值移动到最左侧
  • 再从最左侧逐步往左移动, 直至所有数字均完成排序
  • 时间复杂度 O(n²), 比较n²/2次

2.3 选择排序

  • 直接寻找最小值, 然后将最小值直接与最左侧数字交换
  • 重复查找最小值再与左侧交换的过程直至完成排序
  • 时间复杂度 O(n²), 比较n²/2次

2.4 插入排序

  • 完成排序的数据放在左侧, 右侧为尚未排序的数据
  • 排序时, 将右侧数据取出未排序的数据并在左侧插入排序, 直至排序完成
  • 时间复杂度 O(n²)

2.5 堆排序

  • 利用数据结构中的堆
  • 在堆中存储所有数据, 并将数据按降序构成堆
  • 将堆中取出的数据反序输出, 排序完成
  • 时间复杂度 O(nlogn)

2.6 归并排序

  • 将序列分为两个长度相同的子序列, 当无法继续分开时, 对子序列进行归并
  • 归并即将排好序的子序列合并成一个有序序列
  • 时间复杂度 O(nlogn)

2.7 快速排序

  • 序列中随机选择 基准值(pivot) 将其他数据划分为 "小于基准值"和"大于基准值"
  • 完成划分后, 将基准值插回原位置, 然后再将划分好的两段数据进行排序
  • 时间复杂度 O(nlogn)

第3章 数组的查找

3.1 线性查找

  • 在数组中从头开始依次查询
  • 时间复杂度 O(n)

3.2 二分查找

  • 只能查找已经排好序的数据, 比较一次把查找范围缩小一半, 多次重复即可
  • 时间复杂度 O(logn)

第4章 图的搜索

4.1 什么是图

  • 图中 圆圈"顶点" 连接顶线的线"边". 由顶点和链接每对顶点的边构成的图形就是图

  • 图可以用于表示

    • 人际关系
    • 地铁路线
    • 网络链接状况
  • 加权图:在图上给边加一个值

  • 有向图:表示该路线只能单向

  • 使用场景

    • 寻找计算机通信时间最短路线
    • 寻找路线图中耗时最短的路径
    • 寻找路线图中最省车费的路径

4.2 广度优先搜索

  • 从起点开始搜索直至到达终点 搜索图的算法
  • 从某个顶点开始搜索, 优先搜索距离起点近的顶点
  • 从起点开始由近及远进行广泛的搜索

候补顶点使用 先入先出 可以使用队列

闭环

4.3 深度优先搜索

  • 从起点开始搜索直至到达终点 搜索图的算法
  • 沿着一条路径不断探索直至无法继续, 再折返 开始搜索下一条候补路径

候补顶点使用 后入后出 可以使用栈

区别:广度优先选择最早啊成为候补的顶点; 深度优先选择最新成为候补的顶点

标签:三四,第一本,基准值,复杂度,算法,查找,搜索,顶点,排序
来源: https://www.cnblogs.com/turbospace/p/16653714.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有