更新时间:2022-10-08 17:11:13
封面
版权信息
版权声明
本书赞誉
前言
第1章 数据结构为何重要
1.1 数据结构
1.2 数组:基础数据结构
1.3 速度计量
1.4 读取
1.5 查找
1.6 插入
1.7 删除
1.8 集合:差之毫厘,“慢”之千里
1.9 小结
第2章 算法为何重要
2.1 有序数组
2.2 有序数组的查找
2.3 二分查找
2.4 二分查找与线性查找
2.5 小结
第3章 哦!大O记法
3.1 大O:对N个元素来说需要多少步
3.2 大O的灵魂
3.3 第三类算法
3.4 对数
3.5 O(log N)的含义
3.6 实际例子
3.7 小结
第4章 使用大O给代码提速
4.1 冒泡排序
4.2 冒泡排序实战
4.3 冒泡排序的效率
4.4 平方问题
4.5 线性解法
4.6 小结
第5章 用或不用大O来优化代码
5.1 选择排序
5.2 选择排序实战
5.3 选择排序的效率
5.4 忽略常数
5.5 大O类别
5.6 小结
第6章 根据情况进行优化
6.1 插入排序
6.2 插入排序实战
6.3 插入排序的效率
6.4 平均情况
6.5 实际例子
6.6 小结
第7章 日常代码中的大O
7.1 偶数平均数
7.2 构词程序
7.3 数组抽样
7.4 摄氏温度平均值
7.5 衣服标签
7.6 1的个数
7.7 回文检查
7.8 计算所有的积
7.9 密码破解程序
7.10 小结
第8章 查找迅速的哈希表
8.1 哈希表
8.2 用哈希函数进行哈希
8.3 好玩又赚钱的同义词典(赚钱是重点)
8.4 哈希表查找
8.5 解决冲突
8.6 创造高效的哈希表
8.7 用哈希表整合数据
8.8 用哈希表优化速度
8.9 小结
第9章 用栈和队列打造优雅的代码
9.1 栈
9.2 抽象数据类型
9.3 栈实战
9.4 受限数据结构的重要性
9.5 队列
9.6 队列实战
9.7 小结
第10章 用递归不停递归
10.1 用递归代替循环
10.2 基准情形
10.3 阅读递归代码
10.4 计算机眼中的递归
10.5 文件系统遍历
10.6 小结
第11章 学习编写递归代码
11.1 递归类别:重复执行
11.2 递归类别:计算
11.3 自上而下递归:新的思维方式
11.4 台阶问题
11.5 易位构词生成
11.6 小结
第12章 动态规划
12.1 不必要的递归调用
12.2 大O小改
12.3 递归的效率
12.4 重复子问题
12.5 动态规划与记忆化
12.6 自下而上的动态规划