《算法笔记上机训练实战指南》是《算法笔记》的配套习题集,内容按照《算法笔记》的章节顺序进行编排,其中整理归类了PAT甲级、乙级共150多道题的详细题解,大部分题解均编有题意、样例解释、思路、注意点、参考代码,且代码中包含了详细的注释。读者可以通过本书对《算法笔记》的知识点进行更深入的学习和理解。书中印有大量二维码,用以实时更新或补充书籍的内容及发布本书的勘误。
《算法笔记上机训练实战指南》可作为计算机专业研究生入学考试复试上机、各类算法等级考试(如PAT、CSP等)的辅导书,也可作为考研时“数据结构”科目的教材及辅导书内容的补充。本书还是学习C语言、数据结构与算法的入门辅导书,非常适合零基础的学习者对经典算法进行学习。
目录 · · · · · ·
前言
第1章 本书的使用方法 1
第2章 C/C++快速入门 2
2.1 基本数据类型 2
2.2 顺序结构 2
2.3 条件结构 2
2.4 循环结构 2
2.5 数 组 3
2.6 函 数 3
2.7 指 针 3
2.8 结构体(struct)的使用 3
2.9 补 充 3
2.10 黑盒测试 4
第3章 入门篇(1)——入门模拟 5
3.1 简单模拟 5
3.2 查找元素 29
3.3 图形输出 43
3.4 日期处理 50
3.5 进制转换 50
3.6 字符串处理 58
第4章 入门篇(2)——算法初步 87
4.1 排 序 87
4.2 散 列 128
4.3 递 归 148
4.4 贪 心 148
4.5 二 分 165
4.6 two pointers 176
4.7 其他高效技巧与算法 184
第5章 入门篇(3)——数学问题 189
5.1 简单数学 189
5.2 最大公约数与最小公倍数 201
5.3 分数的四则运算 203
5.4 素 数 209
5.5 质因子分解 218
5.6 大整数运算 223
5.7 扩展欧几里得算法 231
5.8 组合数 231
第6章 C++标准模板库(STL)介绍 232
6.1 vector的常见用法详解 232
6.2 set的常见用法详解 238
6.3 string的常见用法详解 241
6.4 map的常用用法详解 244
6.5 queue的常见用法详解 256
6.6 priority_queue的常见用法详解 256
6.7 stack的常见用法详解 257
6.8 pair的常见用法详解 257
6.9 algorithm头文件下常用函数介绍 257
第7章 提高篇(1)——数据结构专题(1) 258
7.1 栈的应用 258
7.2 队列的应用 261
7.3 链表处理 264
第8章 提高篇(2)——搜索专题 278
8.1 深度优先搜索(DFS) 278
8.2 广度优先搜索(BFS) 281
第9章 提高篇(3)——数据结构专题(2) 286
9.1 树与二叉树 286
9.2 二叉树的遍历 286
9.3 树的遍历 296
9.4 二叉查找树(BST) 316
9.5 平衡二叉树(AVL树) 325
9.6 并查集 329
9.7 堆 333
9.8 赫夫曼树 337
第10章 提高篇(4)——图算法专题 338
10.1 图的定义和相关术语 338
10.2 图的存储 338
10.3 图的遍历 338
10.4 最短路径 357
10.5 最小生成树 385
10.6 拓扑排序 386
10.7 关键路径 386
第11章 提高篇(5)——动态规划专题 387
11.1 动态规划的递归写法和递推写法 387
11.2 最大连续子序列和 387
11.3 最长不下降子序列(LIS) 390
11.4 最长公共子序列(LCS) 392
11.5 最长回文子串 394
11.6 DAG最长路 396
11.7 背包问题 396
11.8 总 结 399
第12章 提高篇(6)——字符串专题 400
12.1 字符串hash 400
12.2 KMP算法 402
第13章 专题扩展 403
13.1 分块思想 403
13.2 树状数组 406
13.3 快乐模拟 408
附 录 430
1