Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 递归回文问题的时间复杂性,C++;_C++_Recursion_Big O - Fatal编程技术网

C++ 递归回文问题的时间复杂性,C++;

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是数字

我只是想知道如何在这里找到递归函数的时间复杂性。我知道我的程序的大部分都是在常数时间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是数字

但是它也是
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
是一个输入数字(不是长度)