递归的时间复杂度分析

时间:2018-05-21 16:29:37

标签: matlab complexity-theory

以下代码使用递归计算行列式。

对于带有O(n)的“for”循环,我们再次用n-1个元素调用该函数,所以每次调用函数时我们都要乘以?  像O(n) O(n-1) ...... * O(1)?

    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

0 个答案:

没有答案