Introduction
1.介绍
1.1.目标
1.2.快速开始
1.3.什么是计算机科学
1.4.什么是编程
1.5.为什么要学习数据结构和抽象数据类型
1.6.为什么要学习算法
1.7.回顾Python基础
1.8.数据入门
1.9.输入和输出
1.10.控制结构
1.11.处理异常
1.12.定义函数
1.13.面向对象编程-定义类
1.14.总结
2.算法分析
2.1.目标
2.2.什么是算法分析
2.3.大O符号
2.4.一个乱序字符串检查的例子
2.5.Python数据结构的性能
2.6.列表
2.7.字典
2.8.总结
3.基本数据结构
3.1.目标
3.2.什么是线性数据结构
3.3.什么是栈
3.4.栈的抽象数据类型
3.5.Python实现栈
3.6.简单括号匹配
3.7.符号匹配
3.8.十进制转换成二进制
3.9.中缀前缀和后缀表达式
3.10.什么是队列
3.11.队列抽象数据类型
3.12.Python实现队列
3.13.模拟:烫手山芋
3.14.模拟:打印机
3.15.什么是Deque
3.16.Deque抽象数据类型
3.17.Python实现Deque
3.18.回文检查
3.19.列表
3.20.无序列表抽象数据类型
3.21.实现无序列表:链表
3.22.有序列表抽象数据结构
3.23.实现有序列表
3.24.总结
4.递归
4.1.目标
4.2.什么是递归
4.3.计算整数列表和
4.4.递归的三定律
4.5.整数转换为任意进制字符串
4.6.栈帧:实现递归
4.7.介绍:可视化递归
4.8.谢尔宾斯基三角形
4.10.汉诺塔游戏
4.11.探索迷宫
4.12.动态规划
4.13.总结
5.排序和搜索
5.1.目标
5.2.搜索
5.3.顺序查找
5.4.二分查找
5.5.Hash查找
5.6.排序
5.7.冒泡排序
5.8.选择排序
5.9.插入排序
5.10.希尔排序
5.11.归并排序
5.12.快速排序
5.13.总结
6.树和树的算法
6.1.目标
6.2.树的例子
6.3.词汇和定义
6.4.列表表示
6.5.节点表示
6.6.分析树
6.7.树的遍历
6.8.基于二叉堆的优先队列
6.9.二叉堆操作
6.10.二叉堆实现
6.11.二叉查找树
6.12.查找树操作
6.13.查找树实现
6.14.查找树分析
6.15.平衡二叉搜索树
6.16.AVL平衡二叉搜索树
6.17.AVL平衡二叉搜索树实现
6.18.Map抽象数据结构总结
6.19.总结
7.图和图的算法
7.1.目标
7.2.词汇和定义
7.3.图抽象数据类型
7.4.邻接矩阵
7.5.邻接表
7.6.实现
7.7.字梯的问题
7.8.构建字梯图
7.9.实现广度优先搜索
7.10.广度优先搜索分析
7.11.骑士之旅
7.12.构建骑士之旅图
7.13.实现骑士之旅
7.14.骑士之旅分析
7.15.通用深度优先搜索
7.16.深度优先搜索分析
7.17.拓扑排序
7.18.强连通分量
7.19.最短路径问题
7.20.Dijkstra算法
7.21.Dijkstra算法分析
7.22.Prim生成树算法
7.23.总结
Published with GitBook
4.13.总结
4.13.总结
在本章中,我们讨论了几个递归算法的例子。 选择这些算法来揭示几个不同的问题,其中递归是一种有效的问题解决技术。 本章要记住的要点如下:
所有递归算法都必须具有基本情况。
递归算法必须改变其状态并朝基本情况发展。
递归算法必须调用自身(递归)。
递归在某些情况下可以代替迭代。
递归算法通常可以自然地映射到你尝试解决的问题的表达式。
递归并不总是答案。有时,递归解决方案可能比迭代算法在计算上更昂贵。
results matching "
"
No results matching "
"