时间复杂度迭代器和每个循环



我目前正在尝试找出最有效的方法,实现一个迭代器或每个循环。

将被遍历的对象是一个类"Graph",它由子类"Graph.Vertex"扩展。什么应该最省时,使用迭代器或 for each 循环遍历对象:

Graph.iterator();
while (Graph.iterator().hasNext()) {
    // Do something
}

与。

for (Graph.Vertex v : Graph {
    // Do something
}

这完全取决于您如何实现其中任何一个。

图的通常实现使用数组来存储顶点,并且只需要 O(V) 时间进行迭代,其中 V 是图中的顶点数。

如果您的实现与此不同,则必须提供更多信息才能获得有关效率的准确答案。

最新更新