第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