【发布时间】:2023-02-03 09:25:07
【问题描述】:
我试图计算出这个函数的时间复杂度: 伪代码
def inc(m):
if m>12:
return;
for i in range(1,m):
//some code
mergeSort(array,0,n-1)
for j in range(1,m):
//some code
inc(m+=1);
时间复杂度是O(n^2logN)吗?如您所见,此示例是一个递归函数,调用一个不同的递归函数进行排序并在最后调用它自己。我不知道 for 循环是否影响以及调用另一个递归函数作为合并排序。
【问题讨论】:
-
if m>12对运行时间有巨大的影响...其中大部分将减少到常数时间,这实际上取决于归并排序的实现。 -
@user700390 这种情况下的合并排序是平均情况,O(nlogn)。但总的来说,你的意思是函数的复杂度可以是 O(1)?
标签: time-complexity big-o complexity-theory