第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 N-S图描述法
1.3.4 伪代码描述法
1.3.5 程序设计语言描述法
1.4 怎样评价一个算法
1.4.1 算法复杂度分析与评价概述
1.4.2 算法复杂度分析与评价的形式化表示
1.4.3 算法的时间复杂度
1.4.4 算法的空间复杂度
1.5 常用算法设计模式
1.6 搭建实践环境
1.6.1 Anaconda介绍
1.6.2 Anaconda安装
1.6.3 Jupyter Notebook的使用
1.7 作业与思考题
第2章 数据结构基础
2.1 线性结构
2.1.1 什么是线性表
2.1.2 怎么存储一个线性表
2.1.3 线性表的基本操作
2.2 队列
2.2.1 什么是队列
2.2.2 队列的基本操作
2.3 栈
2.3.1 什么是栈
2.3.2 栈的基本操作
2.4 树与二叉树
2.4.1 什么是树与二叉树
2.4.2 二叉树的性质
2.4.3 二叉树的存储结构
2.4.4 二叉树的基本操作
2.4.5 树的应用案例
2.5 图
2.5.1 什么是图
2.5.2 图的存储结构
2.5.3 图的基本操作
2.5.4 图应用案例
2.6 作业与思考题
第3章 排序问题
3.1 排序概述
3.1.1 什么是排序
3.1.2 排序的分类
3.1.3 排序算法的性质与性能
3.2 插入排序
3.2.1 直接插入排序
3.2.2 希尔排序
3.3 交换排序
3.3.1 起泡排序
3.3.2 快速排序
3.4 选择排序
3.4.1 简单选择排序
3.4.2 堆排序
3.5 归并排序
3.6 排序算法的比较
3.7 作业与思考题
第4章 查找问题
4.1 查找概念和性能分析
4.1.1 查找的基本概念
4.1.2 查找算法的性能
4.2 线性表的查找
4.2.1 顺序表的查找
4.2.2 排序表的查找
4.3 树的查找
4.3.1 什么是二叉排序树
4.3.2 怎么构造一棵二叉排序树
4.3.3 二叉排序树的查找与删除
4.3.4 二叉排序树查找的性能分析
4.3.5 平衡二叉树
4.4 散列查找
4.4.1 什么是散列查找
4.4.2 散列函数的设计
4.4.3 处理冲突的方法
4.4.4 散列查找性能分析
4.5 查找方法的比较分析
4.5.1 顺序查找和折半查找的比较分析
4.5.2 二叉排序树和线性表的查找比较分析
4.5.3 散列查找的比较分析
4.6 作业与思考题
第5章 图的问题
5.1 图的应用背景
5.2 图的遍历问题
5.2.1 什么是图的遍历
5.2.2 图的广度(宽度)优先遍历算法
5.2.3 图的深度优先遍历算法
5.2.4 图遍历问题的应用案例
5.3 最小生成树问题
5.3.1 什么是最小生成树
5.3.2 克鲁斯卡尔算法
5.3.3 普里姆算法
5.3.4 最小生成树问题的应用案例
5.4 关键路径问题
5.4.1 AOV网与拓扑排序
5.4.2 拓扑排序算法
5.4.3 AOE网与关键路径
5.4.4 关键路径问题的应用案例
5.5 单源与多源最短路径问题
5.5.1 什么是单源与多源最短路径
5.5.2 迪杰斯特拉算法
5.5.3 弗洛伊德算法
5.5.4 最短路径问题的应用案例
5.6 作业与思考题
第6章 串与序列问题
6.1 串
6.1.1 什么是串
6.1.2 串的存储结构
6.1.3 串的基本操作
6.2 子串搜索问题
6.2.1 什么是子串搜索
6.2.2 朴素的串匹配算法
6.2.3 无回溯匹配算法
6.2.4 改进的串匹配算法
6.3 最长公共子串搜索问题
6.3.1 什么是最长公共子串搜索
6.3.2 后缀数组
6.3.3 最长公共子串搜索算法
6.4 串与序列问题的应用案例
6.5 作业与思考题
第7章 组合问题
7.1 组合优化问题的应用背景
7.2 动态规划算法
7.2.1 什么是动态规划算法
7.2.2 动态规划算法求解
7.2.3 动态规划算法的应用案例
7.3 贪心算法
7.3.1 什么是贪心算法
7.3.2 贪心算法求解
7.3.3 贪心算法的应用案例
7.4 最优装载问题
7.4.1 什么是最优装载问题
7.4.2 最优装载问题求解
7.4.3 最优装载问题的应用案例
7.5 多机调度问题
7.5.1 什么是多机调度问题
7.5.2 多机调度问题求解
7.5.3 多机调度问题的应用案例
7.6 组合问题综合比较分析
7.7 作业与思考题
第8章 概率问题
8.1 随机数
8.1.1 什么是随机数
8.1.2 随机数的生成方法
8.2 数值概率问题
8.2.1 π值的计算与实现
8.2.2 定积分的计算机与实现
8.2.3 非线性方程组求解
8.3 舍伍德算法
8.3.1 什么是舍伍德算法
8.3.2 舍伍德算法的应
展开