算法设计与分析-教学大纲

algorithms design and analysis

Posted by hwdong on February 16, 2025

hwdong算法设计与分析课程网站

一、算法设计与分析概述

  1. 算法设计与分析
    • 什么是算法? 算法有什么用? 为什么要学习算法设计与分析?
    • 算法设计:技术(设计模式)、艺术(创造性思维)
      • 算法设计的策略(模式、技术):贪心法、分治法、动态规划、…
      • 算法的表示(描述):自然语言、伪代码
    • 算法分析
      • 时间复杂度:最好、最坏、平均
      • 空间复杂度 2 渐近分析
    • 渐近符号: $O,\Omega,\Theta,o,\omega$
    • 递推方程: 迭代展开、递归树、假设验证(数学归纳法)、高阶方程的简化、主定理
    • P和NP:算法复杂度和问题复杂度,P问题和NP问题
  2. 树和图

二、线性搜索

  1. 蛮力迭代
  2. 双指针迭代

三、贪心法

  1. 活动选择/区间调度(activity selection/Interval Scheduling)
  2. 找零钱
  3. 分数背包问题
  4. 断点选择
  5. 哈夫曼编码
  6. 任务调度(task Scheduling)
  7. Dijkstra最短路径算法
  8. 最小生成树

四、分治法

  1. 什么是分治法:
    • 思想、分类、算法描述、性能分析
    • 选最大与最小:分组、分治递归
  2. 二分查找、归并排序、汉诺塔
  3. 幂乘算法及其应用
  4. 整数乘、矩阵乘:减少子问题的数量
  5. 快速排序
  6. 选择问题(第k个)
  7. 最大子序列和(最大字段和)
  8. 最近点对
  9. 棋盘覆盖
  10. 循环赛日程表

五、动态规划法

  1. 动态规划 Fibonacci数列、
  2. 序列比对
  3. 矩阵链乘法
  4. 加权区间调度(weighted interval Scheduling)
  5. 背包问题
  6. 最长公共子序列
  7. 最大子序列和(最大字段和)
  8. 凸三角形最有剖分
  9. 最优二叉搜索树
  10. 图像压缩

六、状态空间搜索

  1. 什么是状态空间搜索
  2. 深度优先遍历与广度优先遍历
  3. 回溯法 -基于递归深度优先搜索的回溯法
    • 全排列
    • 子集
    • N皇后问题
    • 迷宫问题
    • 8-Puzzle
    • 基于堆栈的深度优先遍历
      • 迷宫
      • 8-Puzzle
  4. 分支定界
    • 0-1背包问题
    • 最大团问题
    • 旅行售货员问题

七、网络流算法

  1. 二部图匹配
  2. 最大最小切

八、随机算法

  1. 数值随机化算法
  2. 舍伍德算法
  3. 拉斯维加斯算法
  4. 蒙特卡洛算法

支付宝打赏 微信打赏

您的打赏是对我最大的鼓励!