我正在尝试实现一个加权图。我知道有两种方法可以实现加权图。使用二维数组(邻接矩阵)或链接列表数组(邻接列表)。这两种方法中哪一种效率更高、速度更快?
就我个人而言,我会选择链表方法,假设它通常是一个稀疏的图(即大多数数组单元都是浪费空间)。
去维基百科阅读邻接列表(自从我使用图表以来已经很久了),它有一个关于两种方法之间权衡的很好的部分。最终,就像许多非此即彼的选择一样,它将归结为“视情况而定”,这取决于你的库的可能用例。
在阅读了维基文章之后,我认为使用列表的另一个好处是将数据附加到每个定向段(甚至不同的权重,想想步行/自行车/汽车在2个点之间的距离等等)
这两种方法中哪一种效率更高、速度更快?
这取决于您的使用情况和您想要存储的图形类型。
设n为节点数,m为边数。如果您想知道两个节点u和v是否连接(以及边的权重),邻接矩阵允许您通过检索条目A[u,v]
以恒定时间(在O表示法中,O(1))来确定这一点。对于邻接列表,您必须查看u列表或v列表中的每个条目-在最坏的情况下,可能有n个条目。所以邻接列表的边查找是O(n)。
相邻矩阵的主要缺点是需要内存。总之,您需要存储n^2个条目。对于邻接列表,您只需要存储实际存在的边(m个条目,假设有向图)。因此,如果你的图是稀疏的,邻接列表显然占据更少的内存。
我的结论是:如果主要操作是检索两个特定节点的边权重,则使用邻接矩阵;在图足够小的情况下,使n^2个条目适合内存。否则,请使用邻接列表。
问题内容: Java图形或图表库上有一个较早的线程,在该线程中发现JFreeChart相当不错, 但是 ,正如其常见问题解答所述,它并不意味着实时渲染。 谁能推荐一个支持实时渲染的类似库?只是一些基本的xy渲染-例如,从数据采集系统获取电压信号并对其进行绘制(x轴上的时间,y轴上的电压)。 问题答案: FAQ实际所说的是JFreeChart不支持硬实时图表,这意味着当新数据到达时或之后的确定时间间
问题内容: 有没有人对任何适用于Graph算法的Java库有丰富的经验。我已经尝试过JGraph并发现还可以,而且Google中有很多不同的产品。人们实际上在生产代码中成功使用了哪些东西,或者会推荐吗? 需要澄清的是,我不是在寻找可生成图形/图表的库,而是在寻找一种可用于图形算法的库,例如最小生成树,Kruskal算法的节点,边等。理想情况下,它具有一些良好的算法/数据一个漂亮的Java OO A
本文向大家介绍C++基于EasyX图形库实现2048小游戏,包括了C++基于EasyX图形库实现2048小游戏的使用技巧和注意事项,需要的朋友参考一下 C++ 和 EasyX 图形库,实现2048小游戏,供大家参考,具体内容如下 MainGame2048.cpp Game2048.h Game2048.cpp 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我正在尝试创建一个LineChartView,其中包含表示当前季度费用的值。我需要使用xAxis的自定义标签数量打印月份和日期。不幸的是,LineChart生成的一组条目不适合我的需求,我无法更改它们。我需要在我的自定义位置的网格线,即每月的第一天和每月的一组日子,我希望它们在特定位置,而不是LineChart想要的位置。我检查了代码,发现xAxis的条目值是以XAxisRenderer.comp
问题内容: 我一直在设计基于.NET / Mono框架的应用程序,该应用程序应大量使用 图 论中的 最短路径, 并且我想使用本机解决方案遍历图的节点,而不是实施几乎无法维护的代理解决方案,并且将严重影响性能。 我找到了一个最适合我的应用程序: neo4j 。 不幸的是,由于两种体系结构之间的巨大差异,该应用程序纯粹是用Java代码编写的,因此无法移植到.NET。 有没有人知道是否有neo4j的任何
5.4.2 案例:图形库 graphics 如前所述,Tkinter 是 Python 语言的标准库,可以利用 Tkinter 中的画布构件来绘制图形。 虽然利用 Tkinter 来进行图形编程已经比较简单、方便,但对初学者来说可能还是有点小麻 烦。例如,画布甚至都没有提供画“点”的方法,初学者希望画点时往往不知怎么办。又如, 圆形一般都是通过圆心和半径来定义的,但在画布上画圆形时必须利用界限框(