【发布时间】:2022-01-15 10:39:14
【问题描述】:
我有一个计算机科学项目,我的任务是评估这个特定函数的时间复杂度,并找出一种通过使用哈希函数数据结构(如集合和字典)来优化它的方法。
def uber_friends(group, network, current_user):
if current_user not in group:
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 编辑:错字
【问题讨论】:
-
请检查您的代码。
grumo是错字吗? -
我认为问题归结为找到所有将您列为前 2 名之一的朋友。因此,在这种情况下,最佳时间复杂度将是
O(N^2),其中 N 是network列表。假设上述算法表现最佳,那么答案应该是O(N^2) -
更正,如果我们还考虑
if current_user in network[x]:,那么时间复杂度将是O(MN^2),其中M是每个朋友网络的最坏情况下的大小
标签: python optimization hash