Python 生成大小k算法所有子集的时间复杂度
我编写了一个代码,用于生成大小Python 生成大小k算法所有子集的时间复杂度,python,algorithm,time-complexity,Python,Algorithm,Time Complexity,我编写了一个代码,用于生成大小k算法的所有子集,但我不知道如何确定其时间复杂度。我知道如何解决简单的案件,但我仍在努力学习如何解决这些较难的案件。这些只是我无法理解的几个示例问题。任何帮助都将不胜感激,并将对我的学习大有帮助,谢谢 def getKSubsets(set,k=0,counter=0,binary=[],list = []) : if len(binary) == 0: binary = [False for i in range(len(set))]
k
算法的所有子集,但我不知道如何确定其时间复杂度。我知道如何解决简单的案件,但我仍在努力学习如何解决这些较难的案件。这些只是我无法理解的几个示例问题。任何帮助都将不胜感激,并将对我的学习大有帮助,谢谢
def getKSubsets(set,k=0,counter=0,binary=[],list = []) :
if len(binary) == 0:
binary = [False for i in range(len(set))]
if (k == 0):
list.append([set[j] for j in range(len(binary)) if binary[j]])
return list
for i in range(counter,len(set)-k + 1) :
binary[i] = True
getKSubsets(set,k-1,i + 1,binary,list)
binary[i] = False
return list
提示:您有一个条件函数,您应该计算所有可能条件的复杂性。(第一个发生,如果第二个发生,如果没有发生)与您的大o问题无关,使用隐藏内置的变量名是一种不好的做法(
列表
参数)。如果k等于0且未提供list
,则还将对可变关键字默认值进行变异。默认值在函数定义求值时绑定一次,因此这些更改将在调用之间保持不变。提示2:name f to getKSubsets给定参数的操作数。所以你可以写f(a,b,c,d,e)=…+f(g,h,i,j,k)。其中点是if语句的操作数。这样,您将减少“查找f的公式”中的问题。假设您纠正了可变默认错误。你确定你能工作吗?任何非平凡的参数/结果示例?(对于普通的:对于任何集合,k=0,失败:它返回None,而应该是由emptyset组成的集合。)None类型返回错误已修复。提示:您有一个条件函数,应该计算所有可能条件的复杂性。(第一个发生,如果第二个发生,如果没有发生)与您的大o问题无关,使用隐藏内置的变量名是一种不好的做法(列表
参数)。如果k等于0且未提供list
,则还将对可变关键字默认值进行变异。默认值在函数定义求值时绑定一次,因此这些更改将在调用之间保持不变。提示2:name f to getKSubsets给定参数的操作数。所以你可以写f(a,b,c,d,e)=…+f(g,h,i,j,k)。其中点是if语句的操作数。这样,您将减少“查找f的公式”中的问题。假设您纠正了可变默认错误。你确定你能工作吗?任何非平凡的参数/结果示例?(对于普通:对于任何集合和k=0,失败:它返回None,而应该是由emptyset组成的集合。)None类型返回错误已修复。