【发布时间】:2014-03-26 15:33:06
【问题描述】:
我正在尝试确定此函数的复杂性,其中 D 和 element 是整数,而 list 是整数的有序列表。请注意, (otherElement-element) 将严格为正。
def doFunc(element, D, list):
x = 0
if(D > 0):
for otherElement in list:
if otherElement == element:
x += 1
if otherElement > element:
return x + (doFunc (otherElement,D-(otherElement-element) , list))
return x
鉴于列表不会总是完全迭代,我不知道如何确定此函数的时间复杂度。
【问题讨论】:
-
参见stackoverflow.com/a/22615862/847269,我在其中回答了一个与此类似但明显不同的问题。
-
我尝试优化算法。你看,我必须以严格低于 O(n^2) 的时间复杂度来解决问题,但我并没有真正了解如何计算大 o。我虽然添加一个新条件可能会帮助我降低复杂性。你是说它和我之前发布的一样吗?
-
否;我现在正在写一个答案,但这里的复杂性确实更好。只是指出这是一个类似的问题;对不起,如果这是你的问题,我不认识你:)
-
没问题,谢谢帮助
标签: big-o time-complexity proof