图解算法学习笔记
文章平均质量分 96
自动驾驶小学生
谢谢关注。代表作品:《Coursera自动驾驶课程24讲》:https://blog.csdn.net/cg129054036/category_10603636.html?spm=1001.2014.3001.5482
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图解算法学习笔记(四):快速排序
目录1) 示例1:2)快速排序3) 再谈大O表示法4)小结本章内容:学习分而治之,快速排序1) 示例1:假设你是农场主,有一小块土地,你要将这块地均匀分成方块,且分出的方块尽可能大。如何分?你要将这块地均匀分成方块,且分出的方块要尽可能大。显然,下面的分法不符合要求。此时,你应该使用D&C策略(divide and conquer)。包括两步骤:...原创 2018-10-28 19:46:11 · 515 阅读 · 0 评论 -
图解算法学习笔记(八):贪婪算法
目录(1)背包问题(2)集合覆盖问题(3)NP完全问题(4)小结本章内容:学习如何处理没有快速算法的问题(NP完全问题)。 学习近似算法,使用它们找到NP问题的近似解。 学习贪婪策略。(1)背包问题假设你是个贪婪的小偷,背着可装35磅重东西的背包,在商场伺机盗窃各种可装入背包的商品。你力图往背包中装入价值最高的商品,你会使用哪种算法呢?你可使用贪婪策略:先盗窃可装...原创 2018-11-04 17:04:31 · 1260 阅读 · 0 评论 -
图解算法学习笔记(七):狄克斯特拉算法
目录1)使用狄克斯特拉算法2)术语3)实现4)小结本章内容; 介绍加权图,提高或降低某些边的权重; 介绍狄克斯特拉算法,找出加权图中前往X的最短路径; 介绍图中的环,它导致狄克斯特拉算法不管用;在上一篇博客中,我们找到了从A到B的路径,这是最短路径,只有三段,但不一定是最短路径。广度优先搜索可以找出段数最少的路径,但如果...原创 2018-10-30 19:39:57 · 889 阅读 · 0 评论 -
图解算法学习笔记(六):广度优先搜索
目录1)图简介2)图是什么3)广度优先搜索4)实现图5)实现算法6)小结本章内容; 学习使用新的数据结构图来建立网络模型; 学习广度优先搜索; 学习有向图和无向图; 学习拓扑排序,这种排序算法指出了节点之间的依赖关系。1)图简介假设你住在旧金山,要从双子峰前往金门大桥。你想乘公交车前往,并希望换乘最少...原创 2018-10-29 21:32:38 · 2204 阅读 · 0 评论 -
图解算法学习笔记(五):散列表
目录1)示例1:2)散列函数3)应用案例4)冲突5)性能6)小结本章内容: 学习散列表,最有用的数据结构之一。 学习散列表的内部机制:实现、冲突和散列函数。1)示例1:假设你在一家杂货店上班,有顾客来买东西时,你得在本子中查找价格。第一章介绍的简单查找,需要O(n)时间,如果你使用的是二分查找,时间为O(log n)。二分...原创 2018-10-29 20:24:33 · 494 阅读 · 0 评论 -
图解算法学习笔记(二): 选择排序
目录1)数组和链表:2)选择排序算法:3)小结本章内容: 两种基本数据结构:数组和链表; 选择排序算法;1)数组和链表:数组是连续的内存单元,链表可以不连续;链表存储单元如图所示,每一个元素都含有下一个元素的地址,就像玩藏宝地图一样,每次只需要找到下一个元素的位置即可访问。 2)选择排序算法:例子:假设你的计算机存储了很多乐曲。对于...原创 2018-10-21 17:16:49 · 325 阅读 · 0 评论 -
图解算法学习笔记(一): 算法简介
本章内容: 编写第一种查找算法——二分查找。 学习如何谈论算法的运行时间——大O表示法。1) 算法是一组完成任务的指令,任何代码片段都可视为算法。2)二分查找:一种查找算法,其输入是一个有序的元素列表。Python实现二分查找代码:#二分查找算法函数 def binary_search(list, item): low = 0 high = le...原创 2018-10-21 17:06:32 · 558 阅读 · 0 评论 -
图解算法学习笔记(目录)
今天遇到一本好书,如下,书很薄,不到200页,有将近400张图片,算法介绍的很有趣。这也是我读的第三本袁国忠先生翻译的书,向两位致敬。目录大致如下;第1章:二分查找和大O表示法;第2章:数组和链表;第3章:递归;问题解决技巧:快速排序(4)、动态规划(9)、贪婪算法(8);第5章:散列表(用途很广);图算法:广度优先搜索(6)、狄克斯特拉算法(7)第10章:KNN...原创 2018-10-21 17:02:36 · 716 阅读 · 0 评论 -
图解算法学习笔记(三):递归
本章内容: 学习递归;如何将问题分解成基线条件和递归条件。 1) 每个递归函数都有两部分:基线条件(base case)和递归条件(recursive base)。例如:打印3...2...1def countdown(i): print(i) if i <= 0: return else: countdown(...原创 2018-10-25 16:14:48 · 395 阅读 · 0 评论 -
图解算法学习笔记(九):动态规划
目录(1)背包问题(2)最长公共子串(3)小结本章内容:学习动态规划,它将问题分成小问题,并先着手解决这些小问题。 学习如何设计问题的动态规划解决方案。(1)背包问题我们再看第八章的背包问题,假设你是个小偷,为了让盗窃的商品价值最高,你该选择哪些商品?最简单的算法如下:尝试各种可能的商品组合,并找出价值最高的组合。这样可行,但速度非常慢!每增加一件商品,需要计算...原创 2018-11-05 16:33:05 · 584 阅读 · 1 评论
分享