第1章 从零开始学算法 1
1.1 算法基础知识 21.1.1 什么是算法 2
1.1.2 算法时间复杂度 2
1.1.3 算法空间复杂度 5
1.1.4 算法优劣比较 6
1.2 计算机中如何描述算法 61.2.1 自然语言 7
1.2.2 流程图 7
1.2.3 伪代码 8
1.2.4 挑战:这个月有多少天 8
1.3 Python概述 101.3.1 Python简介 10
1.3.2 环境搭建 11
1.3.3 开发工具介绍 15
1.3.4 单元测试 22
1.4 总结 252
第2章 数据结构 27
2.1 数组 282.1.1 定义 28
2.1.2 挑战1:海盗船生存大考验 30
2.1.3 挑战2:必胜的游戏 32
2.2 链表 372.2.1 定义 37
2.2.2 挑战:国王的继承人 43
2.3 队列 452.3.1 定义 45
2.3.2 挑战:维修报警器 48
2.4 栈 502.4.1 定义 51
2.4.2 挑战1:和机器人做朋友 52
2.4.3 挑战2:让机器人帮你检查作业 54
2.5 哈希表 562.5.1 定义 56
2.5.2 挑战:基因研究 62
2.6 树 642.6.1 定义 65
2.6.2 二叉树 66
2.6.3 二叉查找树 71
2.6.4 挑战:画一棵好看的“树” 75
2.7 图 782.7.1 定义 79
2.7.2 图的表示 79
2.7.3 图的遍历 82
2.7.4 挑战:“一笔画完”小游戏 86
2.8 总结 913
第3章 数 学 92
3.1 进制转换 93
3.2 基本概念 933.2.1 十进制 93
3.2.2 二进制 93
3.2.3 八进制和十六进制 93
3.2.4 进制转换 94
3.2.5 挑战:网络攻击 98
3.3 数学运算 1003.3.1 内置函数 100
3.3.2 Math库模块 101
3.3.3 排列组合 102
3.3.4 矩阵运算 102