广度优先搜索耗时O(log n)

Breadth First Search in O(log n)

本文关键字:log 广度优先搜索      更新时间:2023-10-16

是否有可能在O(log n)时间内使用BFS(使用遍历的最小顶点)在具有环路和负边的无向图中找到目的地?

为例:给定一个有N个顶点和N条边的简单连通图G(简单图是没有环路的无向图,在任意两个不同的顶点之间不超过一条边)。很明显,图G只包含一个循环,你可以假设这个循环的长度是奇数(在这个循环中有奇数个顶点)。顶点编号从1到n,每条边被分配一个相应的整数权重。你的任务是激发两种类型的查询:更新查询用ffu v表示:改变从顶点u到顶点v的最短路径(你可以在后面的问题中看到最短路径的定义)上所有边的权值的符号。查找由?表示的查询?u v:在从顶点u到顶点v的最短路径上,找到(可能是空的)连续边的集合,使得权值的总和是最大的。换句话说,我们定义从u到v的最短路径为a_1, a_2,…, a_k(其中a_1 = u, a_k = v),你必须找到a_i和a_j,使得i <= j,以及路径a_i, a_(i + 1),…, a_j是尽可能大的。你只需要找到这个和。两个顶点u和v之间的最短路径是用最少数量的顶点连接它们的路径。在这个问题中,很明显g的任意一对顶点之间只有一条最短路径

G为顶点集V、边集E的图。那么广度优先搜索 (BFS)最坏情况下的时间复杂度为O(|V|+|E|)。时间复杂度为O(|V|+|E|),因为在最坏情况下,每个顶点和边都会被访问。复杂度O E(| |)可能不同 O (V | |) O (| V <一口> 2> 在稀疏图的情况下,复杂度将近似为O(|V|),在密集图的情况下,复杂度将近似为O(|V2|)

BFS的时间复杂度为0 (|E|)。

O(logn)要求图以某种方式排序