【发布时间】:2018-07-08 13:18:10
【问题描述】:
我正在研究一个简单的问题,我想出了一个 C++ 中的递归函数,下面是我的函数。
void test(int arr[],int n,int x = 0){
cout<<arr[x];
for(int i = x+1;i < n;i++){
test(arr, n, i);
}
}
如果有人能计算出上述方法的时间复杂度,我想知道上述函数的时间复杂度是多少,这将对改进我的函数有很大帮助。
【问题讨论】:
-
递归可以看作是一种花哨的循环。因此,如果您可以将递归重写为循环,那么它可能会更容易。
-
你为什么不写
x = x + 1; test(arr, n, x);而不是test(arr, n, i);?它是等价的,但更简单、更容易理解。 -
我们不能在这里使用任何主定理吗??
-
这乍一看似乎是指数复杂度算法。
标签: c++ algorithm data-structures time-complexity