读书笔记
HarrietHai
这个作者很懒,什么都没留下…
展开
-
【读书笔记】《算法图解》第三章 递归
第三章 递归1. 伪代码:是对手头问题的简要描述,看着像代码,但其实更接近自然语言2. 递归例如:有一个盒子,这个盒子里有盒子,而盒子里的盒子又有盒子。钥匙在某个盒子中。为找到钥匙,你将使用什么算法?While创建一个要查找的盒子堆从盒子堆去除一个盒子,在里面找。如果找到的是盒子,就将其加入盒子对中,一边以后再查找。如果找到钥匙,则大功告成回到第二步。递归...原创 2019-09-29 16:27:13 · 147 阅读 · 0 评论 -
【读书笔记】《算法图解》第二章 选择排序
第二章 选择排序1 内存的工作原理计算机就像是很多抽屉的集合体,每个抽屉都有地址。Fe0ffeeb是一个内存单元的地址。当需要存储多项数据时, 有两种基本方式——数组和链表。2 数组和链表2.1.1 数组数组意味着所有待办事项在内存中都是相连的(紧靠在一起的)请求计算机分配一块可同时容纳需求的内存,如果没有了空间,就得移到内存的其他地方,因此添加...原创 2019-09-29 16:20:10 · 149 阅读 · 0 评论 -
【读书笔记】《算法图解》第一章 算法简介
【读书笔记】《算法图解》第一章 算法简介第一章 算法简介1. 二分查找1.1.1 二分查找是一种算法,其输入时一个有序的元素列表(仅当列表是有序的时候,二分查找才管用)。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。1.1.2 例子:1~100里猜数字先从50开始。小了排除一半,再猜75,大了,又排除一半。使用二分查找时,你猜测的是中间的数字,从而每次都...原创 2019-09-29 16:17:12 · 212 阅读 · 0 评论 -
【读书笔记】《算法图解》第四章 快速排序
第四章 快速排序1. 分而治之1.1. 分而治之(divide and conquer, D&C)—一种著名的递归式问题解决方法。D&C并非可用于解决问题的算法,而是一种解决问题的思路。1.2. 使用D&C解决问题的过程包括两个步骤:1.2.1. 找出基线条件,这种条件必须尽可能简单1.2.2. 不断将问题分解(或者说缩小...原创 2019-10-06 11:27:48 · 205 阅读 · 0 评论 -
【读书笔记】《算法图解》第五章 散列表
第五章 散列表1 散列函数散列函数将输入映射到数字,白话是:无论你给它什么数据,它都还你一个数字。散列函数必须满足以下要求:他必须是一致的它应将不同的输入映射到不同的数字散列函数的作用:散列函数总是将同样的输入映射到相同的索引。散列函数将不同的输入映射到不同的索引散列函数知道数组有多大,只返回有效的索引散列表:是一种包含额外逻辑的数据结构,它使用散列函数来确定元素的存...原创 2019-10-07 11:51:36 · 154 阅读 · 0 评论 -
【读书笔记】《算法图解》第六章 广度优先搜索
第六章 广度优先搜索广度优先搜索让你能够找出两样东西之间的最短距离,不过最短距离的含义后很多,使用广度优先可以:编写国际跳棋AI,计算最少走多少步可获胜编写贫血检查器,计算最少编辑多少个地方就可将错拼的单词改成正确的单词根据你的人机关系网络找到关系最近的医生1 图简介假设你要从双子峰前往金门大桥,要找到最短路径。解决最短路径问题的算法被称为广度优先搜索。你需要量步骤使用图来建立...原创 2019-10-07 11:57:52 · 171 阅读 · 0 评论 -
【读书笔记】《算法图解》第七章 狄克斯特拉算法
第七章 狄克斯特拉算法1. 使用狄克斯特拉算法如果你需要找出最快的路径,给这些路段加上时间,可使用狄克斯特拉算法。狄克斯特拉算法包含4个步骤:找出“最便宜”的节点,即可在最短时间内到达的节点对于该节点的邻居,检查是否有前往他们的最短路径,如果有,就更新其开销。(开销指的是从起点出发前往该节点需要多长时间)重复这个过程,直到对图中的每个节点都这样做了计算最终路径2. 术语权重...原创 2019-10-08 11:52:46 · 192 阅读 · 0 评论