Algorithm n个大小随机减少的递归函数的时间复杂度
我创建了以下伪代码,但不确定如何计算其复杂性: (伪代码)Algorithm n个大小随机减少的递归函数的时间复杂度,algorithm,time-complexity,recurrence,Algorithm,Time Complexity,Recurrence,我创建了以下伪代码,但不确定如何计算其复杂性: (伪代码) MyFunction接收一组由n个点组成的Q和一个列表L,其中我们将保存Q的k个子集(1),如果没有任何关于Q中点分布的信息,我们无法知道它们将如何分配到M或NM队列 但是,计算算法的最坏情况复杂度是很容易的。为了计算这一点,我们假设在每次递归调用时,Q中的所有点都将在NM中结束,除了在进入循环之前添加到M的点。根据此假设,x变为1
MyFunction接收一组由n个点组成的Q和一个列表L,其中我们将保存Q的k个子集(1),如果没有任何关于Q中点分布的信息,我们无法知道它们将如何分配到M或NM队列 但是,计算算法的最坏情况复杂度是很容易的。为了计算这一点,我们假设在每次递归调用时,
Q
中的所有点都将在NM
中结束,除了在进入循环之前添加到M
的点。根据此假设,x
变为1在你的循环关系中,你得到了O(n^2)
MyFunction(Q, L)
if (Q = empty) return
M = empty queue
NM = empty queue
M.Enqueue(Q.Dequeue)
while (Q is not empty)
pt = Q.Dequeue()
if (pt.y > M.peek().y) M.Enqueue(pt)
else NM.Enqueue(pt)
L.add(M)
if (NM is not empty) MyFunction(NM, L)
return L;