C++ 递归回文问题的时间复杂性,C++;
我只是想知道如何在这里找到递归函数的时间复杂性。我知道我的程序的大部分都是在常数时间O(1)中,但是我如何计算递归函数的时间复杂度呢C++ 递归回文问题的时间复杂性,C++;,c++,recursion,big-o,C++,Recursion,Big O,我只是想知道如何在这里找到递归函数的时间复杂性。我知道我的程序的大部分都是在常数时间O(1)中,但是我如何计算递归函数的时间复杂度呢 intpal(intn,inttemp) { //使用10除法 如果(n==0) 返回温度; //向后建立数字。 温度=(温度*10)+(n%10); //然后通过数字前进。 返回pal(n/10,温度); } int main() { int n=5678; int-temp=pal(n,0); 如果(温度==n) cout它是O(log(n)),其中n是数字
intpal(intn,inttemp)
{
//使用10除法
如果(n==0)
返回温度;
//向后建立数字。
温度=(温度*10)+(n%10);
//然后通过数字前进。
返回pal(n/10,温度);
}
int main()
{
int n=5678;
int-temp=pal(n,0);
如果(温度==n)
cout它是O(log(n))
,其中n是数字
但是它也是O(s)
,shere s是输入大小(在计算理论中使用输入大小作为字符串是相当标准的)
编译在现有的C++平台上,也可以说是<代码> O(k)< /> >因为<代码> int >代码>的大小有限。
所以,这取决于你使用的惯例。或者你的教授在课堂上展示的任何东西。:-
它是O(log(n))
,其中n是数字
但是它也是O(s)
,shere s是输入大小(在计算理论中使用输入大小作为字符串是相当标准的)
编译在现有的C++平台上,也可以说是<代码> O(k)< /> >因为<代码> int >代码>的大小有限。
所以,这取决于你使用的惯例。或者你的教授在课堂上展示的任何东西。:-递归≈ 循环的复杂性是什么?O(n)对吗?但是递归和循环有什么不同吗?这个程序没有输入,所以没有变量可以放入big-O公式中。不过函数pal
在参数方面确实有一个big-O公式。如果我允许程序向用户输入呢?递归显然有一个log\u 10(n)
depth,但是没有理由用O表示法写对数底,因为log_x(k)=(y/x)*log_y(k)
所以这就是O(log(n))
,其中n
是一个输入数(不是长度)递归≈ 循环的复杂性是什么?O(n)对吗?但是递归和循环有什么不同吗?这个程序没有输入,所以没有变量可以放入big-O公式中。不过函数pal
在参数方面确实有一个big-O公式。如果我允许程序向用户输入呢?递归显然有一个log\u 10(n)
depth,但是没有理由用O表示法写对数底,因为log\ux(k)=(y/x)*log\uy(k)
所以这就是O(log(n))
,其中n
是一个输入数字(不是长度)