假设我们要对一个数组中的所有元素求和。
方法一:
def sum_method_one(arr):
total = 0
for i in arr:
total += i
return total
这个方法的时间复杂度为O(n)。
方法二:
def sum_method_two(arr):
if len(arr) == 0:
return 0
elif len(arr) == 1:
return arr[0]
else:
return arr[0] + sum_method_two(arr[1:])
这个方法的时间复杂度为O(n)。
方法三:
def sum_method_three(arr):
if len(arr) == 0:
return 0
elif len(arr) == 1:
return arr[0]
else:
mid = len(arr) // 2
return sum_method_three(arr[:mid]) + sum_method_three(arr[mid:])
这个方法的时间复杂度为O(log n)。
对于这个问题,我们可以看到对于相同数量的元素,方法三的时间复杂度比方法一和方法二要好。因此,我们可以判断方法三更优秀。
注意:本回答中的代码示例并不考虑其实现的实际效率问题,仅用于展示时间复杂度的差异。