- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我读了here对于无向图,当表示为邻接表时,空间复杂度为 O(V + E)
,其中 V
和 E
是顶点数,边缘分别。
我的分析是,对于一个完全连接的图,列表的每个条目都将包含 |V|-1
个节点,因此我们总共有 |V|
个顶点,空间复杂度似乎是 O(|V|*|V-1|)
这似乎是 O(|V|^2)
我在这里缺少什么?
最佳答案
您对完全连通图的分析是正确的。但是,请注意,对于完全连接的图,边数 E
本身就是 O(V^2)
,因此符号 O(V+E)
对于空间复杂度也是正确的。
然而,邻接表的真正优势在于它们可以为并非真正密集连接的图节省空间。如果边数远小于 V^2
,则邻接表将采用 O(V+E)
,而不是 O(V^2)
空间。
请注意,当您谈论 O
-notation 时,您通常有三种类型的变量(或者,一般来说,输入数据)。首先是您正在研究的变量依赖性;其次是那些被认为是常数的变量;第三种是“自由”变量,您通常假设它们采用最坏情况 值。例如,如果您谈论对 N
整数数组进行排序,您通常想研究排序时间对 N
的依赖性,因此 N
是第一类。您通常认为整数的大小是恒定的(也就是说,您假设比较是在 O(1)
等中完成的),并且您通常认为特定的数组元素是“自由的” ,也就是说,您研究特定数组元素的最坏可能组合的运行时间。但是,你可能想从不同的角度研究同一个算法,这将导致不同的复杂性表达。
对于图算法,当然可以考虑顶点数V
为第一类,边数为第三类,研究给定的空间复杂度V
和最坏情况下的边数。然后你确实得到了 O(V^2)
。但是,将 V
和 E
都视为第一类型的变量通常也很有用,从而得到复杂度表达式为 O(V+E)
.
关于algorithm - Graph 的 Adjacency List 表示的空间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33499276/
我在R中有一个示例代码,如下所示: library(igraph) rm(list=ls()) dat=read.csv(file.choose(),header=TRUE,row.names=1,c
我有一组字符串,需要构建一个图,其中字符串是节点,任何一对相邻字符串之间都有边。 对于字符串 A 和 B 如果通过添加、删除或替换 A 的单个字符,则称其为 adjacent (在任何位置)你得到 B
在此代码中,我首先描述了 int a 并为其赋值 9,然后我声明了另一个 int b,然后我将值 3 赋给 *(&b-1) 所以 (&b-1) 指的是 &a然后我打印 a 的值然后它只打印 9 但是当
我有一个这样的文本文件: A B C 每个元素都有这样的子集: A = { a1, a2, a3 } B = { b1, b2 } C = { c1, c2, c3 } 我想生成这个: a1,
题目地址:https://leetcode.com/problems/flower-planting-with-no-adjacent/ 题目描述 Youhave N gardens, label
我有一个内部表,里面有 108 个条目。从 9 到 9 个条目重复条目,我想删除这些重复项。由于它们完全相同,我使用了 delete adjacent duplicates from itab com
我正在准备编码面试,并且正在刷新我对图表的看法。我想知道以下内容:在我所见过的所有地方,假设邻接列表比大型稀疏图的邻接矩阵的内存效率更高,因此在这种情况下应该是首选。此外,计算一个节点的出边数需要矩阵
我正在创建一个邻接矩阵来在 R 中进行空间分析。数据是美国大陆的所有县。我从美国人口普查老虎文件中获得了县空间多边形。 我能够创建邻居列表,并且它是对称的。但是当我将其转换为邻接矩阵时,它不是对称的。
这个问题在这里已经有了答案: Is there a "previous sibling" selector? (33 个答案) 关闭 6 年前。
需要一些关于 CSS 选择器的帮助,因为我还不确定如何在 CSS 中表达它。当 :invalid 伪类出现在 input 元素上时(当然在没有 时被隐藏),我如何让最后一个跨度“错误”显示出来:inv
我将使用包含数千个点的集合。我可以实现或使用 Fortunes Algorithm 的现有实现来生成点的 Voronoi 图,但我的应用程序还要求我了解每个 Voronoi 单元的邻接关系。 更具体地
我有一个表示为 Map> 的依赖关系图(在 Java 中,或 f(Node n) -> Collection[Node] 作为函数;这是从给定节点 n 到依赖于 n 的节点集合的映射)。该图可能是循环
题目地址:https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/ 题目描述 Given a string S
在Excel中,具有以下函数: =IF(AND(N3=1,ISNUMBER(D3),ISNUMBER(E3)),SUM(D3:E3)-2,IF(AND(N3=1,D3="",E3=""),G3,IF(
这个问题在这里已经有了答案: Is there a "previous sibling" selector? (32 个答案) 关闭 6 年前。 在下面的代码中,如果存在“subnav”类,我该如何
我需要检查数字是否在字母旁边,如果是,则添加下划线。 例如: Grapes23 --> Grapes_23 我已经尝试了很长时间,但我是正则表达式的新手。我试过这个但它不起作用: str=str.re
我有以下问题 给定一个字符串,返回一个“清理过”的字符串,其中相同的相邻字符已减少为单个字符。所以 "yyzzza" 产生 "yza"。 stringClean("yyzzza") → "yza"
我正在尝试对齐右侧的按钮以适合与电子邮件文本框相邻的位置。 但是,它对我不起作用。 fiddler : https://jsfiddle.net/Vimalan/mt30tfpv/4/
我真的找不到关于我的问题的任何信息,主要是因为我对 CSS 的了解不够,无法正确表达搜索查询,如果有人问我,我很抱歉。 我正在尝试按以下方式对相邻的同级选择器进行分组,以便任何其他元素后面的任何标题都
我得到的 Test 和 Hello 都是红色的,但是我只在第一个 div 上应用了 class2。 这是我的代码: .class1 { padding-top: 20px; } .class2 {
我是一名优秀的程序员,十分优秀!