算法笔记
✍ Scribed by 胡凡; 曾磊
- Publisher
- 机械工业出版社
- Year
- 2016
- Tongue
- Chinese
- Leaves
- 493
- Series
- 算法考试和考研机试权威宝典
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
这是一本零基础就能读懂的算法书籍,读者不需要因为自己没有语言基础而畏惧。书籍的第2章便是一个C语言的入门教程,内容非常易懂,并且十分实用,阅读完这章就可以对本书需要的C语言基础有一个较好的掌握。
本书已经覆盖了大部分基础经典算法,不仅可以作为考研机试和PAT的学习教材,对其他的一些算法考试(例如CCF的CSP考试)或者考研初试的数据结构科目的学习和理解也很有帮助,甚至仅仅想学习经典算法的读者也能从本书中学到许多知识,本书还有配套的《算法笔记上机训练实战指南》
本书的作者是同样经历过考研机试和各类算法考试的专家型学长,知晓这类考试中的痛点,以及考生在学习算法时容易产生困惑的地方,因此可以把本书看作是学长为你奉献的满满的经验干货,这是有价值的东西。
本书的试印版本献给了浙大考研学子,并令当年的浙大考研机试平均分增加了十多分,收获了考生的大量好评。但作者并...
这是一本零基础就能读懂的算法书籍,读者不需要因为自己没有语言基础而畏惧。书籍的第2章便是一个C语言的入门教程,内容非常易懂,并且十分实用,阅读完这章就可以对本书需要的C语言基础有一个较好的掌握。
本书已经覆盖了大部分基础经典算法,不仅可以作为考研机试和PAT的学习教材,对其他的一些算法考试(例如CCF的CSP考试)或者考研初试的数据结构科目的学习和理解也很有帮助,甚至仅仅想学习经典算法的读者也能从本书中学到许多知识,本书还有配套的《算法笔记上机训练实战指南》
本书的作者是同样经历过考研机试和各类算法考试的专家型学长,知晓这类考试中的痛点,以及考生在学习算法时容易产生困惑的地方,因此可以把本书看作是学长为你奉献的满满的经验干货,这是有价值的东西。
本书的试印版本献给了浙大考研学子,并令当年的浙大考研机试平均分增加了十多分,收获了考生的大量好评。但作者并没有止步于此,经过了半年多时间的内容完善和补充之后,新的版本在新一年的考研机试中再次获得了考生的一致赞美。最后,在经过精心整理之后,书籍终于定稿,并编撰成书。
我们知道,纸质书籍的一个弱点就在于不能像软件一样随时更新内容,但本书采用了与二维码相结合的方式,使得本书变为能够随时更新内容的书籍,读者也可以随时从二维码中找到勘误。这种作者和读者能够相互沟通的方式让书籍变“活”了,也能够帮助提升读者对知识的理解。
内容简介
本书内容包括:C/C++快速入门、入门模拟、算法初步、数学问题、C++标准模板库(STL)、数据结构专题(二章)、搜索专题、图算法专题、动态规划专题、字符串专题、专题扩展。本书印有二维码,用来实时更新、补充内容及发布勘误的。
本书可作为计算机专业研究生入学考试复试上机、各类算法等级考试(如PAT、CSP等)的辅导书,也可作为“数据结构”科目的考研教材及辅导书内容的补充。本书还是学习C语言、数据结构与算法的入门辅导书,非常适合零基础的学习者对经典算法进行学习。
✦ Table of Contents
My Bookmarks
1.1 本书的基本内容
目录
第1章 如何使用本书
1.1 本书的基本内容
1.2 如何选择编程语言和编译器
1.3 在线评测系统
1.4 常见的评测结果
1.5 如何高效地做题
第2章 C/C++快速入门
2.1 基本数据类型
2.1.1 变量的定义
2.1.2 变量类型
2.1.3 强制类型转换
2.1.4 符号常量和const常量
2.1.5 运算符
2.2 顺序结构
2.2.1 赋值表达式
2.2.2 使用scanf和printf输入/输出
2.2.3 使用getchar和putchar输入/输出字符
2.2.4 注释
2.2.5 typedef
2.2.6 常用math函数
2.3 选择结构
2.3.1 if语句
2.3.2 if语句的嵌套
2.3.3 switch语句
2.4 循环结构
2.4.1 while语句
2.4.2 do while语句
2.4.3 for语句
2.4.4 break和continue语句
2.5 数组
2.5.1 一维数组
2.5.2 冒泡排序
2.5.3 二维数组
2.5.4 memset——对数组中每一个元素赋相同的值
2.5.5 字符数组
2.5.6 string.h头文件
2.5.7 sscanf与sprintf
2.6 函数
2.6.1 函数的定义
2.6.2 再谈main函数
2.6.3 以数组作为函数参数
2.6.4 函数的嵌套调用
2.6.5 函数的递归调用
2.7 指针
2.7.1 什么是指针
2.7.2 指针变量
2.7.3 指针与数组
2.7.4 使用指针变量作为函数参数
2.7.5 引用
2.8 结构体(struct)的使用
2.8.1 结构体的定义
2.8.2 访问结构体内的元素
2.8.3 结构体的初始化
2.9 补充
2.9.1 cin与cout
2.9.2 浮点数的比较
2.9.3 复杂度
2.10 黑盒测试
2.10.1 单点测试
2.10.2 多点测试
第3章 入门篇(1)——入门模拟
3.1 简单模拟
3.2 查找元素
3.3 图形输出
3.4 日期处理
3.5 进制转换
3.6 字符串处理
第4章 入门篇(2)——算法初步
4.1 排序
4.1.1 选择排序
4.1.2 插入排序
4.1.3 排序题与sort函数的应用
4.2 散列
4.2.1 散列的定义与整数散列
4.2.2 字符串hash初步
4.3 递归
4.3.1 分治
4.3.2 递归
4.4 贪心
4.4.1 简单贪心
4.4.2 区间贪心
4.5 二分
4.5.1 二分查找
4.5.2 二分法拓展
4.5.3 快速幂
4.6 two pointers
4.6.1 什么是two pointers
4.6.2 归并排序
4.6.3 快速排序
4.7 其他高效技巧与算法
4.7.1 打表
4.7.2 活用递推
4.7.3 随机选择算法
第5章 入门篇(3)——数学问题
5.1 简单数学
5.2 最大公约数与最小公倍数
5.2.1 最大公约数
5.2.2 最小公倍数
5.3 分数的四则运算
5.3.1 分数的表示和化简
5.3.2 分数的四则运算
5.3.3 分数的输出
5.4 素数
5.4.1 素数的判断
5.4.2 素数表的获取
5.5 质因子分解
5.6 大整数运算
5.6.1 大整数的存储
5.6.2 大整数的四则运算
5.7 扩展欧几里得算法
5.8 组合数
5.8.1 关于n!的一个问题
5.8.2 组合数的计算
第6章 C++标准模板库(STL)介绍
6.1 vector的常见用法详解
6.2 set的常见用法详解
6.3 string的常见用法详解
6.4 map的常用用法详解
6.5 queue的常见用法详解
6.6 priority_queue的常见用法详解
6.7 stack的常见用法详解
6.8 pair的常见用法详解
6.9 algorithm头文件下的常用函数
6.9.1 max()、min()和abs()
6.9.2 swap()
6.9.3 reverse()
6.9.4 next_permutation()
6.9.5 fill()
6.9.6 sort()
6.9.7 lower_bound()和upper_bound()
第7章 提高篇(1)——数据结构专题(1)
7.1 栈的应用
7.2 队列的应用
7.3 链表处理
7.3.1 链表的概念
7.3.2 使用malloc函数或new运算符为链表结点分配内存空间
7.3.3 链表的基本操作
7.3.4 静态链表
第8章 提高篇(2)——搜索专题
8.1 深度优先搜索(DFS)
8.2 广度优先搜索(BFS)
第9章 提高篇(3)——数据结构专题(2)
9.1 树与二叉树
9.1.1 树的定义与性质
9.1.2 二叉树的递归定义
9.1.3 二叉树的存储结构与基本操作
9.2 二叉树的遍历
9.2.1 先序遍历
9.2.2 中序遍历
9.2.3 后序遍历
9.2.4 层序遍历
9.2.5 二叉树的静态实现
9.3 树的遍历
9.3.1 树的静态写法
9.3.2 树的先根遍历
9.3.3 树的层序遍历
9.3.4 从树的遍历看DFS与BFS
9.4 二叉查找树(BST)
9.4.1 二叉查找树的定义
9.4.2 二叉查找树的基本操作
9.4.3 二叉查找树的性质
9.5 平衡二叉树(AVL树)
9.5.1 平衡二叉树的定义
9.5.2 平衡二叉树的基本操作
9.6 并查集
9.6.1 并查集的定义
9.6.2 并查集的基本操作
9.6.3 路径压缩
9.7 堆
9.7.1 堆的定义与基本操作
9.7.2 堆排序
9.8 哈夫曼树
9.8.1 哈夫曼树
9.8.2 哈弗曼编码
第10章 提高篇(4)——图算法专题
10.1 图的定义和相关术语
10.2 图的存储
10.2.1 邻接矩阵
10.2.2 邻接表
10.3 图的遍历
10.3.1 采用深度优先搜索(DFS)法遍历图
10.3.2 采用广度优先搜索(BFS)法遍历图
10.4 最短路径
10.4.1 Dijkstra算法
10.4.2 Bellman-Ford算法和SPFA算法
10.4.3 Floyd算法
10.5 最小生成树
10.5.1 最小生成树及其性质
10.5.2 prim算法
10.5.3 kruskal算法
10.6 拓扑排序
10.6.1 有向无环图
10.6.2 拓扑排序
10.7 关键路径
10.7.1 AOV网和AOE网
10.7.2 最长路径
10.7.3 关键路径
第11章 提高篇(5)——动态规划专题
11.1 动态规划的递归写法和递推写法
11.1.1 什么是动态规划
11.1.2 动态规划的递归写法
11.1.3 动态规划的递推写法
11.2 最大连续子序列和
11.3 最长不下降子序列(LIS)
11.4 最长公共子序列(LCS)
11.5 最长回文子串
11.6 DAG最长路
11.7 背包问题
11.7.1 多阶段动态规划问题
11.7.2 01背包问题
11.7.3 完全背包问题
11.8 总结
第12章 提高篇(6)——字符串专题
12.1 字符串hash进阶
12.2 KMP算法
12.2.1 next数组
12.2.2 KMP算法
12.2.3 从有限状态自动机的角度看待KMP算法
第13章 专题扩展
13.1 分块思想
13.2 树状数组(BIT)
13.2.1 lowbit运算
13.2.2 树状数组及其应用
参考文献
封底
📜 SIMILAR VOLUMES
<p>本书以日记体的方式结构全篇,从2017年4月17日起,至2017年6月24日,每篇日记配备了一幅作者在牛津拍摄的黑白照片。作者用直白的文字和珍贵的黑白影像记录了其在牛津大学客座一学期的所见所闻所感,在书中,作者谈时局,谈生活,谈典故,谈童年,表达了对西方知识领域的思考和对人文价值的关怀。可以说,本书是他对时事、人文、历史和生活的洞见,是英式essay与中式小品的曼妙结合。</p>
<p>本书是“唐宋史料笔记丛刊”的一种,由宋刘昌诗撰。刘昌诗生卒不详,主要活动于淳熙八年(1181)至嘉定八年(1215)间,即宋孝宗、光宗、宁宗期间。这部笔记虽仅十卷,但其内容却较广泛,“凡先儒之训传,历代之故实,文字之讹舛,地理之迁变,皆得逆其源而循其流”。上至先秦典籍,下至宋代曲章制度,以及作者之所闻见之遗闻轶事,都有记载或考证。由于作者知识广博,态度认真,文中颇多创见。</p>
<p>本书中处处皆是敏锐的观察、自传性的笔记,以及毛姆很多最杰出作品的萌芽。《作家笔记》是我们对于一位伟大作家的活跃的心灵,得以进行令人愉悦的窥探的独一无二的窗口。</p> <p>在差不多近五十年的时间里,毛姆记了一部私密的日记。在这部日记里,我们看到了毛姆无可比拟的洞察力,以及他作为一名作家的非凡职业生涯的萌芽与发展。年代跨越他在伦敦作为一名青年医科学生,到他成为经历丰富的世界旅行者。《作家笔记》有趣、睿智,充满启示。无疑,这是毛姆最富有意义的作品之一,对于他的粉丝,以及任何对创作过程感兴趣的人来说,都是一本必读书。</p> <p>—————————————————————————</p
收集了列宁1895-1916年间所作的读书摘要和书评札记,反映了列宁的哲学思想,书后附有极有价值的索引,特别是“主题索引”.