在算法与数据结构课程中,您在讲解lazy prim算法(存边,未优化)时间复杂度时,外层循环 while(!pq.isEmpty()) ,循环次数为边数E。内层包括两个部分:
从堆中取出最小的边 pq.extractMin(), 时间复杂度为logE
visit 函数,把所有的visit对邻边的遍历合在一起,也是E次(邻接矩阵V^2次),每次执行pq.insert()函数,复杂度为logE。
综合起来是 O(ElogE + ElogE ), 也就是 O(ElogE)。
在您的另外一个回复中,告诉我lazy prim的复杂度(E+V)logE是如何得出的呢?我是在哪里理解的不到位?