Matlab 递归的时间复杂度分析

Matlab 递归的时间复杂度分析,matlab,complexity-theory,Matlab,Complexity Theory,下面的代码使用递归计算行列式 对于具有O(n)的“For”循环,我们再次调用具有n-1个元素的函数,因此每次调用函数时都必须相乘? 类似于O(n)O(n-1).*O(1)的东西 你的意思可能是O(n!)?你是对的。此外,使用product属性(请参见Wiki页面上的大O表示法),它将等于O(n!) function y = detm(A) n = length(A); y = 0; if n == 1 y = A(1,1); elseif

下面的代码使用递归计算行列式

对于具有O(n)的“For”循环,我们再次调用具有n-1个元素的函数,因此每次调用函数时都必须相乘? 类似于O(n)O(n-1).*O(1)的东西


你的意思可能是
O(n!)
?你是对的。此外,使用product属性(请参见Wiki页面上的大O表示法),它将等于
O(n!)
    function y = detm(A)
    n = length(A);
    y = 0;
    if n == 1
        y = A(1,1);
    elseif n == 2
        y = A(1,1).*A(2,2)-A(1,2).*A(2,1);
    elseif n > 2
        for i = 1:n
           temp = A(2:end,:);
           temp(:,i) = [];
           if mod(i,2) == 0
               y = y - A(1,i)*detm(temp);
           else
               y = y + A(1,i)*detm(temp);
           end
        end
    end
end