手写代码必备手册 PDF 文档

发布于 2025-03-06 20:31:15 字数 3902 浏览 53 评论 0

本书的目标读者是准备去北美找工作的码农,也适用于在国内找工作的码农,以及刚接触 ACM 算法竞赛的新手。

本书包含了一些经典题目的范例代码,经过精心编写,编码规范良好,适合在纸上默写。

怎么样才算是经典的算法题?一般经典的题目都有约定俗成的名称,例如“八皇后问题”,“0-1 背包问题”等,这些名字已经固定下来了,类似于一个“成语”,一般说出名字,大家就都知道题目意思了,不用再解释题目内容,这就是所谓的“经典”。同时,本书的每一个题目,都至少在两本纸质书中出现过。

这本书的定位,与 ACM 算法竞赛类书籍不同。全书的题目比 ACM 竞赛简单,没有高难度的题目,但每道题目,都有详细生动的解释,还给出了可以直接在 OJ 上 AC 的代码。同时,题目的范围不限于算法竞赛,还包括了一些面试中常碰到的工程类题目。

第 1 章 编程技巧
第 2 章 线性表
第 3 章 字符串
3.1 字符串 API
3.1.1 strlen
3.1.2 strcpy
3.1.3 strstr
3.1.4 atoi
3.2 字符串排序
3.3 单词查找树
3.4 子串查找
3.4.1 KMP 算法
3.4.2 Boyer-Moore 算法
3.4.3 Rabin-Karp 算法
3.4.4 总结
3.5 正则表达式
第 4 章 栈和队列
4.1 栈
4.1.1 汉诺塔问题
4.1.2 进制转换
4.2 队列
4.2.1 打印杨辉三角
第 5 章 树
5.1 二叉树的遍历
5.2 线索二叉树
5.3 Morris Traversal
5.3.1 Morris 中序遍历
5.3.2 Morris 先序遍历
5.3.3 Morris 后序遍历
5.3.4 C 语言实现
5.4 重建二叉树
5.5 堆
5.5.1 原理和实现
5.5.2 最小的 N 个和
5.6 并查集
5.6.1 原理和实现
5.6.2 病毒感染者
5.6.3 两个黑帮
5.6.4 食物链
5.7 线段树
5.7.1 原理和实现
5.7.2 Balanced Lineup
5.7.3 线段树练习 1
5.7.4 A Simple Problem with Integers
5.7.5 约瑟夫问题
5.8 Trie 树
5.8.1 原理和实现
5.8.2 Immediate Decodebility
5.8.3 Hardwood Species
第 6 章 查找
6.1 折半查找
6.2 哈希表
6.2.1 原理和实现
6.2.2 Babelfish
第 7 章 排序
7.1 插入排序
7.1.1 直接插入排序
7.1.2 折半插入排序
7.1.3 希尔(Shell) 插入排序
7.2 交换排序
7.2.1 冒泡排序
7.2.2 快速排序
7.3 选择排序
7.3.1 简单选择排序
7.3.2 堆排序
7.4 归并排序
7.5 基数排序
7.6 总结和比较
第 8 章 暴力枚举法
8.1 枚举排列
8.1.1 生成 1 到 n 的全排列
8.1.2 生成可重集的排列
8.1.3 下一个排列
8.2 子集生成
8.2.1 增量构造法
8.2.2 位向量法
8.2.3 二进制法
第 9 章 广度优先搜索
9.1 走迷宫
9.2 八数码问题
9.3 四子连棋
9.4 双向 BFS
9.4.1 八数码问题
9.5 A*算法
9.5.1 八数码问题
9.6 小结
9.6.1 适用场景
9.6.2 思考的步骤
9.6.3 代码模板
第 10 章 深度优先搜索
10.1 四色问题
10.2 全排列
10.3 八皇后问题
10.4 还原 IP 地址
10.5 Combination Sum
10.6 Combination Sum II
10.7 小结
10.7.1 适用场景
10.7.2 思考的步骤
10.7.3 代码模板
10.7.4 深搜与回溯法的区别
10.7.5 深搜与递归的区别
第 11 章 分治法
11.1 棋盘覆盖
11.2 循环赛日程表
第 12 章 贪心法
12.1 最优装载
12.2 哈弗曼编码
12.3 部分背包问题
第 13 章 动态规划
13.1 动规和备忘录法的区别
13.2 最长公共子序列
13.3 最大连续子序列和
13.4 最大 M 子段和
13.5 背包问题
13.5.1 0-1 背包问题
13.5.2 完全背包问题
13.5.3 多重背包问题
13.6 序列型动态规划
13.6.1 最长上升子序列
13.6.2 嵌套矩形
13.6.3 线段覆盖 2
13.6.4 硬币问题
13.7 区间型动态规划
13.7.1 最优矩阵链乘
13.7.2 石子合并
13.7.3 矩阵取数游戏
13.8 棋盘型动态规划
13.8.1 数字三角形
13.8.2 过河卒
13.8.3 传纸条
13.8.4 骑士游历
13.9 划分型动态规划
13.9.1 乘积最大
13.9.2 数的划分
13.10 树型动态规划
13.10.1 访问艺术馆
13.10.2 没有上司的舞会
13.11 最大子矩形
13.11.1 奶牛浴场
13.11.2 最大全 1 子矩阵
第 14 章 图
14.1 图的深搜
14.1.1 Satellite Photographs
14.1.2 John's trip
14.1.3 The Necklace
14.2 图的广搜
14.3 最小生成树
14.3.1 Prim 算法
14.3.2 Kruskal 算法
14.3.3 Highways
14.3.4 最优布线问题
14.4 最短路径
14.4.1 单源最短路径——Dijkstra 算法
14.4.2 每点最短路径——Floyd 算法
14.4.3 HDU 2544 最短路
14.4.4 POJ 1125 Stockbroker Grapevine
14.5 拓扑排序
14.5.1 POJ 1094 Sorting It All Out
14.6 关键路径
第 15 章 数学方法与常见模型
15.1 数论
15.1.1 欧几里德算法
15.1.2 扩展欧几里德算法
15.1.3 素数判定
15.1.4 大整数取模
15.2 组合数学
第 16 章 大整数运算
16.1 大整数加法
16.2 大整数减法
16.3 大整数乘法
16.4 大整数除法
16.5 大数阶乘
16.5.1 大数阶乘的位数
16.5.2 大数阶乘
第 17 章 基础功能
17.1 下一个排列
17.2 数组循环右移

下载地址:https://www.wenjiangs.com/wp-content/uploads/2025/03/ogTUZuPfiTgka236.rar

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

4418 文章
129 评论
84979 人气
更多

推荐作者

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。