Algorithm 如何根据增量值确定算法的时间复杂度

Algorithm 如何根据增量值确定算法的时间复杂度,algorithm,time-complexity,pagerank,Algorithm,Time Complexity,Pagerank,我现在要学习PageRank,我写了这个算法: 我已经确定了while循环内部的复杂性,我认为它是O(n^2)。但接下来我会被while循环本身的复杂性所困扰,它本质上是由delta决定的。Delta是迭代i时R的L1范数与迭代i+1时R的差值 是否有任何方法可以确定这种复杂性 编辑:再解释一下: R是秩向量 epsilon是用户给定的值(我们希望epsilon很小,以便对PageRank有一个很好的估计,但不要太小,因为计算它需要很多时间) creerMatricePageRank()为我

我现在要学习PageRank,我写了这个算法:

我已经确定了while循环内部的复杂性,我认为它是
O(n^2)
。但接下来我会被while循环本身的复杂性所困扰,它本质上是由delta决定的。Delta是迭代
i
时R的L1范数与迭代
i+1
时R的差值

是否有任何方法可以确定这种复杂性

编辑:再解释一下:

  • R是秩向量
  • epsilon是用户给定的值(我们希望epsilon很小,以便对PageRank有一个很好的估计,但不要太小,因为计算它需要很多时间)
  • creerMatricePageRank()
    为我们创建邻接矩阵,并在混合中添加秩源向量
    E
  • A是邻接矩阵

的最里面的
从0变为
t
,意思是
O(t)
的外部
从0变为
t
,这意味着
O(t)*O(t)=O(t^2)

然后你有另一个
for
,它在
O(t)
时间里什么都不做。它什么也不做,因为它首先计算
d2
,然后将
d1
的值赋给
d2
(现在两者的增量相等)。下一个语句
delta=| d1-d2
是说
delta=| delta-delta
=
delta=0

如果ε为负,则
while
循环永远不会结束,否则循环在一次迭代后结束,这意味着
O(t^2)
复杂性


您的代码显然有问题。你要么根本不需要这个
循环,要么你把作业搞混了。

哦,是的,对不起。我把20号线的位置弄混了。它应该在循环计算之前
d2
。但即便如此,当算法的复杂性取决于增量值时,是否有一种方法可以确定算法的复杂性?