第1章 基础算法思想
1.1 编程的灵魂:数据结构十算法
1.2 算法的作用
1.2.1 概述
1.2.2 实例:看商品猜价格
1.3 递推算法思想
1.3.1 算法思路
1.3.2 顺推实例:斐波那契数列
1.3.3 逆推实例:该存多少钱
1.4 枚举算法思想
1.4.1 算法思路
1.4.2 实例:填数游戏
1.4.3 实例:填运算符
1.5 递归算法思想
1.5.1 算法思路
1.5.2 实例:求阶乘
1.5.3 实例:数制转换
1.6 分治算法思想
1.6.1 算法思路
1.6.2 实例:乒乓球比赛赛程安排
1.7 贪婪算法思想
1.7.1 算法思路
1.7.2 实例:换零钱
1.8 试探法算法思想
1.8.1 算法思路
1.8.2 实例:生成彩票号码组合
1.9 模拟算法
1.9.1 算法思路
1.9.2 实例:猜数游戏
1.9.3 实例:模拟掷骰子游戏
1.10 算法的评价
1.10.1 算法评价原则
1.10.2 算法的效率
第2章 简单数据结构
2.1 最简单的结构:线性表
2.1.1 什么叫线性表
2.1.2 操作顺序表
2.1.3 操作链表
2.1.4 实例:用链表制作通信录
2.2 先进先出结构:队列
2.2.1 什么是队列
2.2.2 操作队列
2.2.3 循环队列的操作
2.2.4 实例:银行排号程序
2.3 后进先出结构:栈
2.3.1 什么是栈
2.3.2 操作栈
2.3.3 实例:算术表达式求值
第3章 复杂数据结构
3.1 层次关系结构:树
3.1.1 树的概念
3.1.2 二叉树的概念
3.1.3 二叉树的存储
3.1.4 操作二叉树
3.1.5 遍历二叉树
3.1.6 测试二叉树
3.1.7 线索二叉树
3.1.8 最优二叉树(赫夫曼树)
3.2 网状关系:图
3.2.1 图的定义和基本术语
3.2.2 图的存储
3.2.3 创建图
3.2.4 图的遍历
3.2.5 最小生成树
3.2.6 最短路径
第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.4 简单选择排序法
4.5 堆排序法
4.5.1 算法描述
4.5.2 算法实现
4.6 直接插入排序法
4.6.1 算法描述
4.6.2 算法实现
4.7 希尔排序法
4.7.1 算法描述
4.7.2 算法实现
4.8 合并排序法
4.8.1 算法描述
4.8.2 算法实现
4.9 排序算法的选择
4.9.1 选择基准
4.9.2 各种排序算法的优缺点
第5章 常用算法——查找
5.1 查找的基本概念
5.2 简单查找
5.2.1 顺序查找
5.2.2 折半查找
5,3 二叉排序树
5.3.1 二叉排序树的定义
5.3.2 插入结点
5.3.3 查找结点
5.3.4 删除结点
5.4 索引查找
5.4.1 索引的概念
5.4.2 索引查找算法
5.5 散列表
5.5.1 散列表概述
5.5.2 构造散列函数
5.5.3 处理冲突
5.5.4 -创建和查找散列表
第6章 数学问题
6.1 有趣的整数
6.1.1 完数
6.1.2 亲密数
6.1.3 水仙花数
6.1.4 自守数
6.1.5 最大公约数和最小公倍数
6.2 素数
6.2.1 求素数
6.2.2 回文素数
6.2.3 哥德巴赫猜想
6.3 阶乘
6.3.1 用递归计算阶乘
6.3.2 大数阶乘
6.4 求兀的近似值
6.4.1 概率法
6.4.2 割圆法
6.4.3 公式法
6.4.4 计算任意位数的兀
6.5 方程求解
6.5.1 高斯消元法解线性方程组
6.5.2 二分法解非线性方程
6.5.3 牛顿迭代法解非线性方程
6.6 矩阵的运算
6.6.1 矩阵加法和乘法运算
6.6.2 多维矩阵转一维矩阵
6.6.3 逆矩阵
6.6.4 稀疏矩阵
6.7 元多项式的运算
6.7.1 多项式加法
6.7.2 多项式减法
第7章 数据结构问题
7.1 约瑟夫环
7.2 大整数四则运算
7.2.1 使用数组进行大整数运算
……
第8章 算法经典问题
第9章 信息学奥赛试题精解
附录 Dev-C++开发环境的使用
展开