这是我查找素数的功能
void print(int num)
{
for(int i=2; i<num/2; i++)
{
if(num%i==0)
{
cout<<"not prime\n";
exit(0);
}
}
cout<<"prime\n";
}
我在num的输入我正在尝试使用大哦找到运行时。我记得找到运行时间与日志有关。
最糟糕的情况是我的程序会运行n / 2 -1次?
答案 0 :(得分:3)
是的,循环运行n / 2-1次并且只包含具有恒定复杂度的命令,因此对于某些a,运行时缩放为*(n / 2-1)。在big-o中,这写为O(n / 2-1),因为常数因素无关紧要,所以等于O(n)。
(顺便说一下:它实际上是theta(n),这意味着它不仅仅是从上面被n限制而是从下面被n限制)