时间复杂度,多次递归调用,扫雷

问题描述

我正在学习算法课中的时间复杂度。我对以下函数的复杂性有疑问。我有点不确定如何去做。

从本质上讲,它内部有8个递归调用,每次在函数调用中,每个参数之一都减去1。它们由if语句结合在一起,因此,如果if语句不正确,它将返回false(一旦检查了8条语句中的每条)。

我猜想这意味着时间复杂度将始于:8T(n-1)+ O(1)。这会归结为O(n ^ 8)吗?我很困惑是正确的还是O(nlogn),就像我们在课堂上遇到的递归时间复杂性的另一个例子一样。

再说一次,我还在学习,我只是好奇这应该是什么!

这是我先前讨论的功能的代码(这是我构建的Minesweeper游戏的一部分,C ++)

l1 = [1,2]
l2 = ['A','B','C']
l3 = ['d','e','f','g']
l4 = ['word1','word2','word3','word4','word5']
l5 = [10,20,30,40,50,60]

import itertools as itt

result = []
for n in range(1,5):
    for ls in itt.combinations([l1,l2,l3,l4,l5],n):
        result+= list(itt.product(*ls))
        
print(result)

感谢您帮助我理解这一点!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...