Dinic算法Java实现中字符串节点名引发的性能异常问题求助
Dinic算法Java实现中字符串节点名引发的性能异常问题求助
各位大佬好,我最近在Java里实现Dinic算法时遇到了一个特别奇怪的性能问题,想过来求助!
我用字符串类型作为图的顶点名称,发现一个离谱的现象:当节点名是纯数字(比如1、2、3……200)的时候,算法跑得特别快;可一旦给这些节点名加上前缀,随着前缀字符串长度增加,代码的执行速度就会变得特别慢,这实在让人摸不着头脑。
下面是我的算法实现代码:
package org.apache.misc.alg.dag; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Queue; import java.util.Set; public class DinicCalculator<T> implements MaxAntichainCalculator<T> { private final Map<String, Map<String, Integer>> network; private List<String> nodes; private int[] level; public DinicCalculator(...) { // 原提问中省略的构造方法内容 } // 其他算法实现方法... }
备注:内容来源于stack exchange,提问作者hehe
相关产品推荐
相关产品推荐

