我遇到了代码的一个特定部分,其中浪费了时间,同时比较了最大的PathCost并将其传递给oldPathCost。这是一段代码的样本,它永远需要一段时间。 stationNames是TreeMap类型。建议另外一种方法,在运行下面的代码时可以消除时间,谢谢极客!
for(int i=1; i<stationNames.size(); i++)
{
for(int j=1; j<stationNames.size() && i != j; j++)
{
pathCost = runQ1_Q2(i, j);
if(pathCost > oldPathCost)
{
oldPathCost = pathCost;
tempi = i;
tempj = j;
}
}
}
即使在优化之后,这里的runQ1_Q2方法如下所示。
public int runQ1_Q2(int st, int fin) throws Exception
{
graph G= new graph (edges);
return (G.shortestPaths(st,fin)).size();
}