[英]Determining time complexity of a function
我有一个计算机科学项目,我的任务是评估这个特定 function 的时间复杂度,并找出一种方法来优化它,方法是使用 hash ZC1C425268E68385D1AB5074C17A94 和数据结构,如集合。
def uber_friends(group, network, current_user):
if current_user not in grumo:
group.append(current_user)
for x in range(0, len(network)):
if current_user in network[x]:
ind = network[x].index(current_user)
if ind == 0:
uber_friends(group, network, network[x][1])
if ind == 1:
uber_friends(group,network, network[x][0])
else:
return None
return group
为了澄清起见,“group”首先应该是一个空列表,network 应该是一个嵌套列表,其中内部列表中的元素是 2 个 int,current_user 应该是一个 int
弄清楚 function 的时间复杂度的第一步是使用一些示例输入来运行它——然后我们可以跟踪 function 并查看执行可能花费的时间。
uber_friends([], [], 1)
uber_friends([], [], 1)
File "test.py", line 2, in uber_friends
if current_user not in grumo:
NameError: name 'grumo' is not defined
此异常在 function 的第一行引发,无论传递什么参数都会引发。 因此,function 的时间复杂度为 O(1)。
我们可以将实现简化为:
def uber_friends(group, network, current_user):
raise NameError("name 'grumo' is not defined")
但这并不影响时间复杂度。 涉及数据结构的进一步优化既不可能也没有必要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.