Recursion 递归Big-O的复杂性

Recursion 递归Big-O的复杂性,recursion,complexity-theory,Recursion,Complexity Theory,明天我有一个计算机科学期中考试,我需要帮助确定这些递归函数的复杂性。我知道如何解决简单的案件,但我仍在努力学习如何解决这些较难的案件。任何帮助都将不胜感激,并将对我的学习大有帮助,谢谢 fonction F(n) if n == 0 return 1 else return F(n-1) * n fonction UniqueElements(A[0..n-1]) for i=0 to i <= n-2 do for

明天我有一个计算机科学期中考试,我需要帮助确定这些递归函数的复杂性。我知道如何解决简单的案件,但我仍在努力学习如何解决这些较难的案件。任何帮助都将不胜感激,并将对我的学习大有帮助,谢谢

fonction F(n)
    if n == 0
        return 1
    else
        return F(n-1) * n

fonction UniqueElements(A[0..n-1])
    for i=0 to i <= n-2 do
        for j=i+1 to j <= n-1 do
            if A[i] == A[j]
                return false
        return true

fonction    BinRec(n)
    if n == 1
        return 1
    else
        return BinRec(floor(n/2)) + 1

对于实践学习,您可以将函数插入到程序中,并测试它们在最坏情况下的性能

当试图手工计算O时,这里有一些事情要记住

可以忽略+、-、*和/偏移。因此,1到n+5和1到5n被认为等于1到n。 而且,只有最高数量级才起作用,因此对于O2^n+n^2+n,2^n增长最快,因此它相当于O2^n 对于递归函数,您将看到函数在方法中被调用的次数(拆分计数)以及需要调用的次数(深度通常等于列表长度)。因此,最后的O将是深度计数^split计数 对于循环,每个嵌套循环与它所在的循环相乘,顺序循环相加,因此1-n{1-n{}1-n{}是n*n+n=>n^2+n=仅最高增长计数>n^2 实践你需要练习掌握增长率的关卡以及控制流如何相互作用。在线练习也是如此 功能Fn{ 计数++ 如果n==0 返回1 其他的 返回Fn-1*n } 函数Uniquelementsa{ 对于var i=0;i