c++ - 这个算法的复杂度是多少

标签 c++ complexity-theory

<分区>

这个算法的时间复杂度是多少?

void prime(int n) { 
    int i = 2;
    while ((n % i) && i <= sqrt(n))
        i++;

    if (i > sqrt(n))
        print(“%d is a prime number\n”, n);
    else
        print(“%d is not a prime number\n”, n);
}

最佳答案

复杂度大约为 O(sqrt(N))。有些书会将其表示为 O(N0.5)。

每次循环迭代都会重新计算平方根。这是一个相当慢的操作,所以它比最优的要慢,但只是一个常数因子,所以它不会影响计算的复杂性。

关于c++ - 这个算法的复杂度是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39461515/

相关文章:

c++ - 使用默认构造值初始化 std::map

c++ - 改变静态文本的颜色C++

带有 C++ 库的 Java JNI "symbol lookup error"

search - O(1) 怎么了?

time-complexity - 8^log2(n) 的大 O 表示法

c++ - DirectX10 上的深度缓冲区不起作用

algorithm - 代码片段的复杂性

c++ - 找到最接近的斐波那契数

sorting - 从行已排序的 n x m 数组中按升序打印数字

c++ - 为什么 map::iterator 导致编译错误。 C++