为你推荐
前言
第 1 章 数据结构为何重要
1.1 基础数据结构:数组
1.2 集合:一条规则决定性能
1.3 总结
第 2 章 算法为何重要
2.1 有序数组
2.2 查找有序数组
2.3 二分查找
2.4 二分查找与线性查找
2.5 总结
第 3 章 大O记法
3.1 大O:数步数
3.2 常数时间与线性时间
3.3 同一算法,不同场景
3.4 第三种算法
3.5 对数
3.6 解释O(log N)
3.7 实例
3.8 总结
第 4 章 运用大O来给代码提速
4.1 冒泡排序
4.2 冒泡排序实战
4.3 冒泡排序的实现
4.4 冒泡排序的效率
4.5 二次问题
4.6 线性解决
4.7 总结
第 5 章 用或不用大O来优化代码
5.1 选择排序
5.2 选择排序实战
5.3 选择排序的实现
5.4 选择排序的效率
5.5 忽略常数
5.6 大O的作用
5.7 一个实例
5.8 总结
第 6 章 乐观地调优
6.1 插入排序
6.2 插入排序实战
6.3 插入排序的实现
6.4 插入排序的效率
6.5 平均情况
6.6 一个实例
6.7 总结
第 7 章 查找迅速的散列表
7.1 探索散列表
7.2 用散列函数来做散列
7.3 一个好玩又赚钱的同义词典
7.4 处理冲突
7.5 找到平衡
7.6 一个实例
7.7 总结
第 8 章 用栈和队列来构造灵巧的代码
8.1 栈
8.2 栈实战
8.3 队列
8.4 队列实战
8.5 总结
第 9 章 递归
9.1 用递归代替循环
9.2 基准情形
9.3 阅读递归代码
9.4 计算机眼中的递归
9.5 递归实战
9.6 总结
第 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 删除
11.7 链表实战
11.8 双向链表
11.9 总结
第 12 章 让一切操作都更快的二叉树
12.1 二叉树
12.2 查找
12.3 插入
12.4 删除
12.5 二叉树实战
12.6 总结
第 13 章 连接万物的图
13.1 图
13.2 广度优先搜索
13.3 图数据库
13.4 加权图
13.5 Dijkstra算法
13.6 总结
第 14 章 对付空间限制
14.1 描述空间复杂度的大O记法
14.2 时间和空间之间的权衡
14.3 写在最后的话
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜