求下面程序的时间复杂性的量级为()
int prime(int n)
{
int i=1;
int x=(int)sqrt(n);
while(++i<=x)
if(n%i==0)break;
if(i>x)return 1;
else return 0;
}
A:O(1) B:O(log2n) C: O(n) D: O(n的平方根)
要解释答案啊!
求下面程序的时间复杂性的量级为()
int prime(int n)
{
int i=1;
int x=(int)sqrt(n);
while(++i<=x)
if(n%i==0)break;
if(i>x)return 1;
else return 0;
}
A:O(1) B:O(log2n) C: O(n) D: O(n的平方根)
要解释答案啊!
画一个X轴和Y轴 模拟一个N=4,就可以看出,描的点是一条零为顶点的斜线 ,得出的就是N的复杂度了
所以,方法就是画X轴和Y轴,描几个点连一下线,就可以推出时间复杂度.
A
因为肯定一次过终止循环
算法复杂度量级时间推理得出
首先这里While循环就证明,而条件是活得。自然不是A
你自己设定一个数字,看要走多少步,再看结果的规律!
好像是N
不过我也刚学的,不太懂,感觉