第1章 初步认识算法思想
1.1 什么是算法
1.1.1 由一道趣味题引出算法的定义
1.1.2 总结算法的特征
1.2 算法是程序的灵魂
1.3 算法的表示方法
1.3.1 用流程图表示算法
1.3.2 用N-S流程图表示算法
1.4 Python算法思想
1.4.1 常用的算法思想
1.4.2 算法优劣衡量标准:算法复杂度
1.4.3 时间复杂度与空间复杂度的取舍问题
第2章 枚举算法思想
2.1 Python中的枚举算法
2.2 算法演练:找出符合条件的五位数
2.2.1 算法分析:首位数不能是谁
2.2.2 具体实现
2.3 算法演练:24点游戏
2.3.1 算法分析:加括号和去除重复表达式
2.3.2 具体实现
2.4 算法演练;解决熄灯问题
2.4.1 算法分析:规则中的规律
2.4.2 具体实现
2.5 算法演练:解决旅行销售员问题
2.5.1 问题介绍
2.5.2 算法分析
2.5.3 具体实现
第3章 递归算法思想
3.1 递归算法思想基础
3.2 算法演练:解决“斐波那契数列”问题
3.2.1 算法分析:找出兔子增加的规律
3.2.2 具体实现
3.3 算法演练:阶乘问题
3.3.1 算法分析:拆分调用
3.3.2 具体实现:显示6以内整数的阶乘过程
3.4 算法演练:进制转换器
3.4.1 算法分析:除以2获取余数
3.4.2 具体实现;输出十进制数字10对应的二进制数
3.5 算法演练;解决二叉树遍历问题
3.5.1 算法分析:实现三种遍历方式
3.5.2 实现树的结构
3.5.3 递归遍历方案
3.6 算法演练:;图像分割问题
3.6.1 问题介绍
3.6.2 算法分析
3.6.3 具体实现
第4章 分治算法思想
4.1 分治算法思想基础
4.2 算法演练:二分法找出有序列表指定值
4.2.1 算法分析:确定中位数
4.2.2 实现方案:先判断再查询
4.3 算法演练:求顺序表中数据最大值
4.3.1 算法分析:找出每一个分组中的最大值
4.3.2 具体实现:找出给定列表list中的最大值
4.4 算法演练:找出一组序列中第k小(大)的元素
4.4.1 算法分析:设置枢纽元素
4.4.2 具体实现;找出第k小的元素
4.5 算法演练:实现归并排序
4.5.1 算法分析:中间下标与值大小分配
4.5.2 具体实现:对列表[1,6,12,3,8]进行归并排序
4.6 算法演练:整数划分
4.6.1 算法分析:梳理递归关系
4.6.2 具体实现:计算整数6的最大加数是2时的划分数量
第5章 贪心算法思想
5.1 贪心算法思想基础
5.1.1 贪心算法的特点和基本思路
5.1.2 贪心算法的基本思路
5.2 算法演练:解决“汽车加油”问题
5.2.1 算法分析:先加油后贪心
5.2.2 具体实现
5.3 算法演练:求最大子元素之和
5.3.1 算法分析:确定目前子元素的和是否最大
……
第6章 回溯算法思想
第7章 迭代算法思想
第8章 查找算法
第9章 排序算法
第10章 使用算法解决数据结构问题
第11章 使用算法解决常见数学问题
第12章 经典算法问题
第13章 人工智能算法
展开