Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm n个大小随机减少的递归函数的时间复杂度_Algorithm_Time Complexity_Recurrence - Fatal编程技术网

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中点分布的信息,我们无法知道它们将如何分配到MNM队列

但是,计算算法的最坏情况复杂度是很容易的。为了计算这一点,我们假设在每次递归调用时,
Q
中的所有点都将在
NM
中结束,除了在进入循环之前添加到
M
的点。根据此假设,
x
变为
1

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;