更改

跳到导航 跳到搜索
删除1字节 、 2020年10月21日 (三) 17:14
第126行: 第126行:  
用稀疏邻接矩阵表示邻接表时,将占用更少的空间。这是因为它能避免为不存在的边分配任何空间。在一台32位计算机上,如果使用原始的数组结构实现邻接表,那么对于一个无向图来说,它大约需要占用8e字节的存储空间,其中e表示边的个数。每条边都将会在两个邻接表中重复出现,并分别占用4字节空间。
 
用稀疏邻接矩阵表示邻接表时,将占用更少的空间。这是因为它能避免为不存在的边分配任何空间。在一台32位计算机上,如果使用原始的数组结构实现邻接表,那么对于一个无向图来说,它大约需要占用8e字节的存储空间,其中e表示边的个数。每条边都将会在两个邻接表中重复出现,并分别占用4字节空间。
   −
注意到一个'''<font color="#ff8000">无向简单图</font>'''最多可以有 n<sup>2</sup>边(允许循环),我们可以让d=e/n<sup>2</sup>表示该图的密度。然后,8e>n<sup>2</sup>/8当d>1/64}时,即邻接表表示比邻接矩阵表示占用更多的空间。因此,图必须足够稀疏,才适合使用邻接表表示。
+
注意到一个'''<font color="#ff8000">无向简单图</font>'''最多可以有 n<sup>2</sup>边(允许循环),我们可以让d=e/n<sup>2</sup>表示该图的密度。然后,8e>n<sup>2</sup>/8当d>1/64时,即邻接表表示比邻接矩阵表示占用更多的空间。因此,图必须足够稀疏,才适合使用邻接表表示。
    
除了空间上的权衡,不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵,必须扫描整行,这需要花费O(n)的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定,并且运行时间与邻接列表中两个顶点的最小度数成正比。
 
除了空间上的权衡,不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵,必须扫描整行,这需要花费O(n)的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定,并且运行时间与邻接列表中两个顶点的最小度数成正比。
11

个编辑

导航菜单