下面算法的时间复杂度是
int p1( int n)
{
t = 1;
while( t <= n)
t *= 2;
return t;
}
int p1( int n)
{
t = 1;
while( t <= n)
t *= 2;
return t;
}
举一反三
- #include <;stdio.h>;int main( ){ int i,t; t=1; i=2; while(i<;=5) { t=t*i; i=i+1; } printf("%d\n",t); return 0;} 程序的运行结果是: 。
- 下列程序段 A 与 B 功能等价,请填写程序段 B 中相应语句。 程序段A: int f( int n ) { if(n<=1) return n; else return f(n-1)+f(n-2); } 程序B: int f( int n )______; t0=0; t1=1; t=n; while ( n>1 ) { t = t0+t1 ; t0 = t1; t1 = t; n - -; } return t ; }
- 以下程序的运行结果为( )。#include <;stdio.h>;int main( ){int i,t;t=1;i=2;while(i<;=5){t=t*i;i=i+1;}printf("%d\n",t);return 0;}
- 设问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为______ 。
- T(n)表示当输入规模为n时的算法效率,求T(n)=T(n-1)+1,T(1)=1的时间复杂度