目录 第1章算法概述 1.1算法的基本概念 1.1.1学习算法的重要性 1.1.2算法的定义及特性 1.1.3算法的描述方式 1.2算法设计的一般过程 1.3算法分析 1.3.1算法分析的概念 1.3.2时间复杂性 1.3.3空间复杂性 1.3.4算法渐进复杂性 1.3.5算法复杂性的权衡考虑 1.4递归 1.4.1认知递归 1.4.2n的阶乘 1.4.3排列问题 1.4.4最大公约数 1.4.5递归算法的复杂性分析 拓展知识: 算法界十大名师简介 本章习题 第2章贪心算法 2.1贪心算法概述 2.1.1贪心算法的基本思想 2.1.2贪心算法的基本要素 2.1.3贪心算法的解题步骤及算法设计模式 2.2会场安排问题 2.3单源最短路径问题 2.4哈夫曼编码 2.5最小生成树 2.5.1Prim算法 2.5.2Kruskal算法 2.5.3两种算法的比较 拓展知识: 遗传算法 本章习题 第3章分治算法 3.1分治算法概述 3.1.1分治算法的基本思想 3.1.2分治算法的解题步骤 3.2二分查找 3.3循环赛日程表 3.4合并排序 3.5快速排序 3.6最接近点对问题 拓展知识: 禁忌搜索算法 本章习题 第4章动态规划算法 4.1动态规划算法概述 4.1.1动态规划算法的基本思想 4.1.2动态规划算法的解题步骤 4.1.3动态规划算法的基本要素 4.2矩阵连乘问题 4.3凸多边形最优三角剖分问题 4.4最长公共子序列问题 4.5加工顺序问题 4.601背包问题 4.7最优二叉查找树 拓展知识: 模拟退火算法 本章习题 第5章回溯算法及分支限界算法 5.1回溯算法 5.1.1回溯算法的算法框架及思想 5.1.2子集树 5.1.3排列树 5.1.4满m叉树 5.2分支限界算法 5.2.1分支限界算法的基本思想 5.2.201背包问题 5.2.3旅行商问题 5.2.4布线问题 5.2.5分支限界算法与回溯算法的比较 拓展知识: 蚁群算法 本章习题 第6章随机化算法 6.1随机化算法概述 6.1.1随机化算法的类型及特点 6.1.2随机数发生器 6.2数值随机化算法 6.2.1计算π值的问题及分析 6.2.2计算定积分 6.3蒙特卡洛算法 6.3.1主元素问题 6.3.2素数测试 6.4拉斯维加斯算法 6.4.1整数因子分解问题 6.4.2n皇后问题 6.5舍伍德算法 6.5.1随机快速排序 6.5.2线性时间选择问题 拓展知识: 粒子群优化算法 本章习题 第7章网络流算法 7.1最大网络流 7.1.1基本概念 7.1.2增广路算法 7.1.3最大网络流的变换与应用 7.2最小费用最大流 7.2.1基本概念 7.2.2消圈算法 7.2.3最小费用最大流的变换与应用 拓展知识: 捕食搜索算法 本章习题 第8章NP完全理论 8.1易解问题和难解问题 8.2P类问题和NP类问题 8.2.1P类问题 8.2.2NP类问题 8.2.3P类问题和NP类问题的关系 8.3NP完全问题 8.3.1多项式变换技术 8.3.2典型的NP完全问题 8.4NP完全问题的近似算法 8.4.1顶点覆盖问题 8.4.2装箱问题 8.4.3旅行商问题 8.4.4集合覆盖问题 拓展知识: DNA计算 本章习题