接下来我们要针对复杂度做介绍,首先要说的就是高手们常常说的「Big O」! 但是到底什麽是 big O notation 呢?
在电脑科学中,big O 可以帮助我们分析演算法效率:
设, ,且存在一正数 C 与一数 N 使得 for all ,则 。
也就是说,当 n 够大时,g(n) 的影响力会比 f(n) 大。
举个例子:
而
可以发现,在计算 Big O 时,我们是忽略掉常数项不计的。
由 nodes 与 edges 交织而成。
nodes 可以理解为一个点的位置,而 edges 则是通往别的点的路径,与两点中间若有 edge,即称这两个点为 neighbors,而一个 node 有多少 neighbor 就代表他有多少 degree。
Edges有两个种类:
Path
path 又称为 route,以上图为例:若我们想要从 node1 走到 node6,我们有好几种方式:
(1, 5, 4, 6)、(1, 2 ,3 ,4, 6)、(1, 3, 4, 6)。
Cycle
若ㄧ路径起点与终点相同,则我们称此为一个 cycle。
一个不含 cycle 的path称作「simple path」。
一个不含 cycle的graph称作「acyclic graph」。
Weights
我们可以在每条 edge 上添加上数字,代表 distance、cost 等等。
例如:
(1, 2, 3, 4) 的距离即为13。
由於在程序码不能读取我们的图,但是可以用adjacency matrix来储存graph的资讯,不过有的时候,adjacency matrix会太占空间,因此也很常用另一种方式:adjacency list。
如果我们想要存谁是neighbors,只要是 neighbors 就在 matrix 中以 1 表示。
一个 graph 可以表达很多资讯,例如我们想找到各点的最短路径的话,可以将所有最短路径画成一个树状图如下图。
而依照此树状图,有两种演算法可以帮助我们做搜寻 nodes,分别为:
这边有一篇文章我认为讲得十分清楚,附上网址给大家做参考:深度优先搜寻(DFS)和广度优先搜寻(BFS)演算法,实用的节点搜寻法
<<: Day 15:移除 Hexo 文章点击「阅读全文」後网址出现的 `#more`
>>: Day-15 Pytorch 的 Regression 实作
Firebase 云端服务平台之一,提供资料库、机器学习、虚拟机、登入验证等服务 建立专案 要使用 ...
今天来介绍NN的另一个类别,RNN主要是运用在sequence data做预测,也就是任何有序的资料...
昨天帮我们用 Template Driven Forms 所撰写的登入系统写完单元测试之後,今天则...
喵喵喵喵喵喵喵喵!!!终於写完 30 天的文章了,这 30 天中,我们从云端的概念开始,进入了 Go...
我们知道,像InnoDB、MyISAM这样的储存引擎都是把资料存在磁碟里,而作业系统是使用档案系统管...