int PMe(int n)
{
int i=1;//这个语句花费了常数时间,记为o(1)
int x=(int) sqrt(n);;//这个语句花费了常数时间,记为o(1)
while (++i<=x)
if (n%i==0) break;//这个while 循环最多一共运行x次,所以花费了o(sqrt(n))的运行时间
if (i>x) return 1;
else return 0;);;//这个if...else语句花费了常数时间,记为o(1)
}
所以整个算法花费了o(1)+o(1)+o(sqrt(n))+o(1),所以
时间复杂度就是o(sqrt(n))。
至于为什么 o(1)+o(1)+o(sqrt(n))+o(1)=o(sqrt(n)),建议您去看
麻省理工学院的公开课
《算法导论》的第一大部分:基础。在第三章和第四章,讲的很详细。本回答被提问者采纳