作者:胡凡 日期:2016-07-03 20:30:21
这本书籍是《算法笔记》的配套训练书籍,有着PAT甲乙级的全部真题,并且每道题的题解都相当详细,给出的代码也进行了大量的注释,真正做到了“题解”二字,读者在认真研习本书后可以对代码能力得到不小的提升。本书同时也是作者的实战经验,书中总结了很多技巧,不仅可以作为考研机试和PAT的学习教材,对其他的一些算法考试(例如CCF的CSP考试)或者考研初试的数据结构科目的学习和理解也很有帮助,甚至仅仅想学习经典算法的读者也能从本书中学到许多知识。传统的习题类书籍都有着一个问题,那就是书中的内容无法“与时俱进”,一旦成书之后便无法在短时间内进行修改或者完善。但是本书和《算法笔记》相同,也采用了书籍二维码的方式,这使得本书可以随时添加、更新题目,或者对书中的讲解进行更进一步的深入。可以说这本书是一本“活”的习题集,能够真正做到“与时俱进”。
本书简介:
本书是《算法笔记》的配套习题集,内容按照《算法笔记》的章节顺序进行编排,其中整理归类了PAT甲级、乙级共150多道题的详细题解,大部分题解均编有题意、样例解释、思路、注意点、参考代码,且代码中包含了详细的注释。读者可以通过本书对《算法笔记》的知识点进行更深入的学习和理解。书中印有大量二维码,用以实时更新或补充书籍的内容及发布本书的勘误。本书可作为计算机专业研究生入学考试复试上机、各类算法等级考试(如PAT、CSP等)的辅导书,也可作为考研时“数据结构”科目的教材及辅导书内容的补充。本书还是学习C语言、数据结构与算法的入门辅导书,非常适合零基础的学习者对经典算法进行学习。
目录:
前言第1章本书的使用方法1第2章C/C快速入门22.1基本数据类型22.2顺序结构22.3条件结构22.4循环结构22.5数组32.6函数32.7指针32.8结构体(struct)的使用32.9补充32.10黑盒测试4第3章入门篇(1)——入门模拟53.1简单模拟53.2查找元素293.3图形输出433.4日期处理503.5进制转换503.6字符串处理58第4章入门篇(2)——算法初步874.1排序874.2散列1284.3递归1484.4贪心1484.5二分1654.6twopointers1764.7其他高效技巧与算法184第5章入门篇(3)——数学问题1895.1简单数学1895.2最大公约数与最小公倍数2015.3分数的四则运算2035.4素数2095.5质因子分解2185.6大整数运算2235.7扩展欧几里得算法2315.8组合数231第6章C标准模板库(STL)介绍2326.1vector的常见用法详解2326.2set的常见用法详解2386.3string的常见用法详解2416.4map的常用用法详解2446.5queue的常见用法详解2566.6priority_queue的常见用法详解2566.7stack的常见用法详解2576.8pair的常见用法详解2576.9algorithm头文件下常用函数介绍257第7章提高篇(1)——数据结构专题(1)2587.1栈的应用2587.2队列的应用2617.3链表处理264第8章提高篇(2)——搜索专题2788.1深度优先搜索(DFS)2788.2广度优先搜索(BFS)281第9章提高篇(3)——数据结构专题(2)2869.1树与二叉树2869.2二叉树的遍历2869.3树的遍历2969.4二叉查找树(BST)3169.5平衡二叉树(AVL树)3259.6并查集3299.7堆3339.8赫夫曼树337第10章提高篇(4)——图算法专题33810.1图的定义和相关术语33810.2图的存储33810.3图的遍历33810.4最短路径35710.5最小生成树38510.6拓扑排序38610.7关键路径386第11章提高篇(5)——动态规划专题38711.1动态规划的递归写法和递推写法38711.2最大连续子序列和38711.3最长不下降子序列(LIS)39011.4最长公共子序列(LCS)39211.5最长回文子串39411.6DAG最长路39611.7背包问题39611.8总结399第12章提高篇(6)——字符串专题40012.1字符串hash40012.2KMP算法402第13章专题扩展40313.1分块思想40313.2树状数组40613.3快乐模拟408附录430
前言第1章 本书的使用方法1第2章 C/C快速入门22.1 基本数据类型22.2 顺序结构22.3 条件结构22.4 循环结构22.5 数组32.6 函数32.7 指针32.8 结构体(struct)的使用32.9 补充32.10 黑盒测试4第3章 入门篇(1)——入门模拟53.1 简单模拟53.2 查找元素293.3 图形输出433.4 日期处理503.5 进制转换503.6 字符串处理58第4章 入门篇(2)——算法初步874.1 排序874.2 散列1284.3 递归1484.4 贪心1484.5 二分1654.6 twopointers1764.7 其他高效技巧与算法184第5章 入门篇(3)——数学问题1895.1 简单数学1895.2 最大公约数与最小公倍数2015.3 分数的四则运算2035.4 素数2095.5 质因子分解2185.6 大整数运算2235.7 扩展欧几里得算法2315.8 组合数231第6章 C标准模板库(STL)介绍2326.1 vector的常见用法详解2326.2 set的常见用法详解2386.3 string的常见用法详解2416.4 map的常用用法详解2446.5 queue的常见用法详解2566.6 priority_queue的常见用法详解2566.7 stack的常见用法详解2576.8 pair的常见用法详解2576.9 algorithm头文件下常用函数介绍257第7章 提高篇(1)——数据结构专题(1)2587.1 栈的应用2587.2 队列的应用2617.3 链表处理264第8章 提高篇(2)——搜索专题2788.1 深度优先搜索(DFS)2788.2 广度优先搜索(BFS)281第9章 提高篇(3)——数据结构专题(2)2869.1 树与二叉树2869.2 二叉树的遍历2869.3 树的遍历2969.4 二叉查找树(BST)3169.5 平衡二叉树(AVL树)3259.6 并查集3299.7 堆3339.8 赫夫曼树337第10章 提高篇(4)——图算法专题33810.1 图的定义和相关术语33810.2 图的存储33810.3 图的遍历33810.4 最短路径35710.5 最小生成树38510.6 拓扑排序38610.7 关键路径386第11章 提高篇(5)——动态规划专题38711.1 动态规划的递归写法和递推写法38711.2 最大连续子序列和38711.3 最长不下降子序列(LIS)39011.4 最长公共子序列(LCS)39211.5 最长回文子串39411.6 DAG最长路39611.7 背包问题39611.8 总结399第12章 提高篇(6)——字符串专题40012.1 字符串hash40012.2 KMP算法402第13章 专题扩展40313.1 分块思想40313.2 树状数组40613.3 快乐模拟408附录430
前言本书作为《算法笔记》的配套习题集,适合用于研究生复试上机、PAT甲级与乙级考试、CCF的CSP认证等算法考试。本书中的题目全部配有详细的题解,大部分题目都包含题意、样例解释、思路、注意点及参考代码。使用本书前,读者应先阅读本书的配套教材《算法笔记》的对应章节,然后再以本书中的习题作为训练。训练时先独立思考,不要马上看书中的思路和相关内容,如果有不会的题目可以暂时先跳过,过段时间再回头重新做。如果题目确实有些难度,想了很久也不得要领,那么可以阅读该题的思路部分;如果多次提交却总是无法通过全部数据点,那么可以阅读该题的注意点部分,看看有什么边界数据是自己没有注意到的;当对该题的写法不太确定时,也可以阅读参考代码。本书适合进行专题训练,即对一个章节的题目进行集中训练,这有助于对同一个算法进行详细且细致的训练,而不会出现为了做题而做题、从头到尾刷完PAT之后却还是一点感觉都没有的情况。本书上有些来自codeup的习题,可供读者练习使用。另外,本书将在每小节的最后配有一个二维码,用以更新本节内容或是对本节的新题进行补充;每章最后也会有一个二维码,用来补充新内容。本书的勘误和内容更新日志均体现在下面的二维码,可供读者查看实时更新。