更新时间:2020-08-06 15:06:02
封面
版权页
内容简介
前言
第1章 计算机问题求解概述
1.1 问题与问题实例
1.2 计算机问题求解周期
1.3 算法与程序
1.4 算法复杂性分析
1.4.1 空间复杂性
1.4.2 时间复杂性
习题1
第2章 程序设计语言与数据结构
2.1 程序设计语言的“盲点”
2.1.1 long不够长
2.1.2 double不够准
2.1.3 递归不够快
2.2 基本数据结构
2.2.1 线性表
2.2.2 栈和队列
2.2.3 树和二叉树
2.2.4 优先队列和堆
2.2.5 图
2.2.6 并查集
2.3 标准模板库
2.3.1 模板的基本概念
2.3.2 标准模板库概述
2.3.3 标准模板库应用
习题2
第3章 枚举算法
3.1 枚举的基本思想
3.2 模糊数字
3.3 真假银币
3.4 m钱n鸡
3.5 数字配对
3.6 绳子切割
3.7 石头距离
习题3
第4章 递归与分治
4.1 递归程序
4.2 分治法的基本原理
4.3 合并排序
4.4 逆序对问题
4.5 快速排序
4.6 最接近点对问题
4.7 指数运算
4.8 二分查找
习题4
第5章 动态规划
5.1 动态规划的基本思想
5.1.1 动态规划的基本要素
5.1.2 动态规划的求解步骤
5.2 矩阵连乘
5.3 最优二叉搜索树
5.4 多段图最短路径
5.5 最长公共子序列
5.6 0-1背包问题
5.7 最大上升子序列
习题5
第6章 贪心算法
6.1 贪心算法的基本要素
6.2 活动安排问题
6.3 小数背包问题
6.4 最优前缀码
6.5 单源最短路径
6.6 最小生成树
6.6.1 Prim算法
6.6.2 Kruskal算法
习题6
第7章 搜索技术
7.1 问题的状态空间表示
7.2 深度优先搜索
7.3 广度优先搜索
7.4 回溯算法
7.4.1 回溯算法的基本原理和框架程序
7.4.2 装载问题的回溯算法
7.4.3 圆排列问题
7.5 分支限界
7.5.1 分支限界法的基本原理
7.5.2 装载问题的分支限界法
7.6 启发式搜索
7.6.1 启发式搜索基本原理
7.6.2 装载问题的启发式搜索
习题7
附录A 复杂度分析的数学基础
附录B 常用C语言和STL函数
附录C 程序设计竞赛和OnlineJudge介绍
附录D 教学资源
参考文献
反侵权盗版声明