Java:在O(n)中打印列表的哈希图



是否可以在O(n(中打印列表的哈希图?

我正要做这样的事:

for(Map.Entry<String, ArrayList<Edge>> e : map.entrySet()){
for(Edge e1 : e.getValue())
System.out.println(e.getKey() + " = "+ e1.Out());
}

但这是O(n^2(

我的标签图:

private Map<K, List<Edge<K,E>>> G = null;

我试着做这样的事情:

public void getEdges(){
getEdges(0);
}
private void getEdges(int i){
if(i==this.G.size()){
return;
}else{
List<Edge<K, E>> edgeList = this.G.get(this.G.keySet().toArray()[i]);
for(Edge<K, E>  e : edgeList) {
System.out.println("Edges : "+e.toString());
}
getEdges(i+1);
}
}

但这不是O(n(

但这是O(n^2(

实际上是O(E),其中E是边的总数。

你不能在1的基础上改进。


1-至少,从复杂性的角度来看

最新更新