算法图解笔记
算法图解,像小说一样有趣的算法入门书
西祠梧桐
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法图解第十、十一章读书笔记
K最近邻算法:KNN用于分类和回归,需要考虑最近的邻居。分类就是编组。回归就是预测结果。特征抽取意味着将物品转换为一系列可比较的数字。能否挑选合适的特征事关KNN算法的成败余弦相似度不计算两个矢量的距离,而比较它们的角度。适合如下情况: 假设有两位品味类似的用户,但其中一位打分时更保守。他们都喜欢Manmohan Desai的电影Amar Akbar Anthony,但P...原创 2019-06-15 21:50:27 · 206 阅读 · 0 评论 -
算法图解第九章动态规划读书笔记
动态规划是一种解决棘手问题的方法,它将问题分成小问题,并先着手解决这些小问题一、背包问题:一个背包的容量是4磅,吉他容量一磅,价值1500美元,音响容量4磅,价值3000美元,笔记本电脑容量3磅,价值2000美元,问题:如何是背包里面装的东西价值最高物品/容量 1 2 3 4 吉他 1500 1500 1500 1500 音响 ...原创 2019-06-13 23:36:36 · 238 阅读 · 0 评论 -
算法图解第七章狄克斯特拉算法读书笔记
广度优先搜索找出的是段数最少的路径;狄克斯特拉算法找出最快的路径. 狄克斯特拉算法包含4个步骤: 1)找出"最便宜"的节点,即可在最短时间内到达的节点. 2)更新该节点的邻居的开销. 3)重复这个过程,直到对图中的每个节点都这样做了. 4) 计算最终路径. 狄克斯特拉算法用于每条边都有关联数字的图,这些数字称为权重.带权重的图称为加权图,不带权重的图称为非加权图.要计算非加权图的最短路径,可使...原创 2019-05-01 17:33:39 · 274 阅读 · 0 评论 -
算法图解第六章广度优先搜索读书笔记
图由节点和边组成.一个节点可能与众多节点直接相连,这些节点被称为邻居. 广度优先搜索是一种用于图的查找算法,可以帮助回答两类问题: 1)从节点A出发,有前往节点B的路径吗? 2)从节点A出发,前往节点B的哪条路径最短? 有向图和无向图(没有箭头,直接相连的节点互为邻居) 拓扑排序 树是一种特殊的图 广度优先搜索算法 from collections import dequegr...原创 2019-04-25 23:30:25 · 206 阅读 · 0 评论 -
算法图解第五章散列表
散列函数"讲输入映射到数字" 散列函数总是将同样的输入映射到相同的索引. 散列函数将不同的输入映射到不同的索引. 散列函数知道数组有多大,只返回有效的索引. 散列表也被称为散列映射、映射、字典和关联数组.散列表也使用数组来存储数据. Python提供的散列表实现为字典. 散列表的填装因子=散列表包含的元素数 / 位置总数 一个不错的经验规则是:一旦填装因子大于0.7,就调整散列表的长...原创 2019-04-24 22:53:54 · 127 阅读 · 0 评论 -
算法图解第四章快速排序学习笔记
分而治之(divide & conquer,D&C) 一种著名的递归式问题解决方法 使用D&C解决问题的过程包括两个步骤: 1) 找出基线条件,这种条件必须尽可能简单; 2)不断将问题分解(或者说缩小规模),直到符合基线条件 将长1680M宽640M的土地均匀的分成方块,且分出的方块要尽可能大. 思考: 适用于这小块地的最大方块,也是适用于整块地的最大方块 (参阅...原创 2019-04-18 22:37:25 · 147 阅读 · 0 评论 -
算法图解第三章递归笔记
每个递归函数都有两部分: 基线条件和递归条件.递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环. 所有函数调用都进入调用栈...原创 2019-04-18 22:23:57 · 184 阅读 · 0 评论 -
算法图解第二章选择排序
选择排序的时间复杂度O() 算法python的实现 def findSmallest(arr): smallest = arr[0] smallest_index = 0 for i in range(1, len(arr)): if arr[i] < smallest: smallest = arr[i] ...原创 2019-04-17 22:52:58 · 167 阅读 · 0 评论 -
算法图解第八章贪婪算法
贪婪算法:每步的局部最优解,可能是全局最优解。问题1:有几个广播台,每个广播台都覆盖特定的区域,不同的广播台的覆盖区域可能重叠。找出覆盖全美50个州的最小广播台集合。1)选出这样一个广播台,即它覆盖了最多的未覆盖州。即便这个广播台覆盖了一些已覆盖的州,也没有关系。2)重复第一步,直到覆盖了所有的州。这个实例中,贪婪算法的时间复杂度为o(n^2)python中集合类似于列表,只是...原创 2019-06-11 22:55:05 · 328 阅读 · 0 评论 -
算法图解书籍第一章算法简介读书笔记
二分查找算法的复杂度最多为: 对数是幂运算的逆运算 仅当列表是有序的时候,二分查找才管用. 算法的速度指的并非时间,而是操作数的增速二分查找法python版本 def binary_search(list, item): low = 0 high = len(list)-1 while low <= high: # mid = i...原创 2019-04-16 22:55:38 · 214 阅读 · 0 评论
分享