图书目录

目录

第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计算

本章习题