在Java中实现边缘加权图的最佳方法

巴达万

首先,我要处理的图形超过1000条边,并且遍历邻接表以及每秒超过100次的顶点。因此,我确实需要一个适合我目标的有效实施。

我的顶点是整数,而我的边缘是无向的,加权的。

我看过这段代码。
但是,它使用边缘对象对邻接表进行建模。这意味着我想花费O(|adj|)时间来获取顶点的相邻点,相邻|adj|点的基数在哪里

另一方面,我正在考虑使用建立邻接表的模型Map<Integer, Double>[] adj
通过使用此方法,我将仅使用adj[v]v作为顶点,并获得顶点的相邻部分进行迭代。

另一种方法要求类似:

public Set<Integer> adj(int v) 
{
    Set<Integer> adjacents = new HashSet<>();
    for(Edge e: adj[v])
        adjacents.add(e.other(v));
    return adjacents;
}

我的目标是:

  • 我想随时按其连通性(相邻数)对顶点的子集进行排序。
  • 另外,我需要根据连接自身及其相邻像素的边的权重,对顶点的相邻像素进行排序。
  • 我想在不占用太多空间的情况下执行这些操作,这会减慢操作速度。我应该考虑使用邻接矩阵吗?
雅各布·巴特尔

我已经将JGrapht用于库来存储各种我自己的图形表示形式。他们在这里有一个加权图实现:http : //jgrapht.org/javadoc/org/jgrapht/graph/SimpleWeightedGraph.html

这似乎可以满足您的需求,并且我用它来表示最多约2000个顶点的图形,并且可以很好地满足我的需求,尽管我不记得访问率。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java中实现分页的最佳方法

来自分类Dev

在Java中实现枚举类的最佳方法

来自分类Dev

LRU在Java中快速实现的最佳方法

来自分类Dev

加权有向图最短路径的最佳方法

来自分类Dev

如何在java中为加权无向图编写toString方法?

来自分类Dev

使用会话是在Java中实现购物车的最佳方法?

来自分类Dev

Java中多因素加权排序的有效实现

来自分类Dev

具有有向加权边的图的Java邻接表实现

来自分类Dev

在MeteorJS中实现单例的最佳方法

来自分类Dev

在Rails中实现友谊模型的最佳方法

来自分类Dev

在python熊猫中实现Apriori的最佳方法

来自分类Dev

在Scala中实现“ zipLongest”的最佳方法

来自分类Dev

在Rails中实现友谊模型的最佳方法

来自分类Dev

在MeteorJS中实现单例的最佳方法

来自分类Dev

在iOS中实现离线地图的最佳方法

来自分类Dev

在Scala中实现“ zipLongest”的最佳方法

来自分类Dev

在Swift中实现指针的最佳方法

来自分类Dev

如何在OpenCV中实现的Canny边缘检测算法中选择最佳的参数集?

来自分类Dev

在 Java 中实现对象列表的最佳实践

来自分类Dev

实现在Java中运行异步作业的优雅取消的最佳方法

来自分类Dev

在Java中实现Singleton模式与Factory模式结合的最佳方法是什么?详细说明

来自分类Dev

Neo4j中的加权图

来自分类Dev

Python中的加权随机图遍历

来自分类Dev

在加权树中查找和存储所有对距离的最佳方法是什么?

来自分类Dev

如何将加权的networkx图以所需格式导出到边缘列表?

来自分类Dev

在Excel中创建过程步骤图的最佳方法

来自分类Dev

图的边缘

来自分类Dev

图的边缘

来自分类Dev

使用Java8流实现此集合的最佳方法

Related 相关文章

热门标签

归档