1.1 什么是算法1.2 计算机科学中算法的位置1.3 算法分析引论1.4 算法设计引论 1.1 什么是算法 在数学和计算机科学中,算法/算则法为一个计算的具体步骤,常用于计算、数据处理和自动推理。算法满足的条件 有穷性/终止性:有限步内必须停止确定性:每一步都是严格定义和确定的动作能行性:每一个动作都能够被精确的机械执行输入:有一个满足给定约束条件的输入输出:满足给定约束条件的结果 1.2 计算机科学中算法的位置 算法是计算机科学基础的重要主题 解决一个问题的过程 可计算性能行可计算算法设计与分析计算机语言实现软件系统 1.3 算法分析引论 算法正确性:对于每一个输入都终止,产生的输出都正确 算法复杂性:算法对不同输入所需资源量 需要时间资源的量称为时间复杂度需要空间资源的量称为空间复杂度算法复杂性依赖于算法要解决问题的规模、算法的输入和算法本身 1.4 算法设计引论 算法设计模式 暴力搜索分治法图搜索与枚举:分支界限、回溯随机化方法 算法实现方法 递归与迭代顺序、并行与分布式确定性与非确定性近似求解与精确求解量子算法 最优化算法设计方法 线性规划动态规划贪心法启发式方法