Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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
Python 以n和m为单位的运行时复杂性是多少?_Python_Time Complexity - Fatal编程技术网

Python 以n和m为单位的运行时复杂性是多少?

Python 以n和m为单位的运行时复杂性是多少?,python,time-complexity,Python,Time Complexity,这是一个编码面试问题。 以下算法的运行时复杂度是多少,以n和m为单位 def print_all_codes(n, m): def print_01_codes(current, num_digits): if num_digits == 0: print(current) else: print_01_code

这是一个编码面试问题。 以下算法的运行时复杂度是多少,以n和m为单位

    def print_all_codes(n, m):
    
        def print_01_codes(current, num_digits):
    
            if num_digits == 0:
    
                print(current)
    
            else:
    
                print_01_codes('0' + current, num_digits - 1)
    
                print_01_codes('1' + current, num_digits - 1)
    
        upper_bound = 0
    
        while True:
    
            for i in range(upper_bound):
    
                print_01_codes('', n)
    
            if upper_bound > m:
    
                break
    
            upper_bound += 1
此循环与此循环相同:

for i in range(m):
    for j in range(i):
       #Function
循环时间复杂性如下所示:
1+2+3+4+…+m-1=>(m-1)*(m)/2=>O(m^2)
关于您的#功能:


        if num_digits == 0:

            print(current)

        else:

            print_01_codes('0' + current, num_digits - 1)

            print_01_codes('1' + current, num_digits - 1)
这是一个递归函数,就像一个完整的二叉树。所以它是
O(2^n)

您的代码时间复杂度是
O(m^2*2^n)

什么是
n
m
?您确定没有使用
i

        if num_digits == 0:

            print(current)

        else:

            print_01_codes('0' + current, num_digits - 1)

            print_01_codes('1' + current, num_digits - 1)