c - 需要帮助验证这种复杂性

标签 c complexity-theory time-complexity

我正在处理一些复杂的问题,而我知道这个很简单。我需要知道我发现的这个算法的复杂性是否做得好,如果没有,请有人帮我改正。

int algorithm(int x)
{
    int y=1;                                    1
    while(y<=x)                                 x+1
    {
        int z=x-y;                              x
        while(z>=1)                             x
        {
            z=z/5;                              x-1
        }
        y++;                                    x
    }
    return 0;
}

我发现复杂度为 O(x) 阶。
任何帮助将不胜感激,谢谢。

最佳答案

你有 x 次主循环迭代

while(y<=x)

,并且在每个循环中你有 0..log(x) 次内部循环迭代

while(z>=1)

所以恕我直言,复杂度是 o(xlogx)

关于c - 需要帮助验证这种复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22046790/

相关文章:

java - 计算步数和 O 表示法

c - 使用 valgrind 修复内存泄漏

algorithm - 复杂性——决定增长的顺序

算法复杂度

algorithm - 大 O 表示法 - 数量级

java - 是否有任何 log(n) 时间成本 Set 需要迭代才能插入(在 Java 中)?

java - 为给定字符串生成所有字符串子集

c - 查找以特定字符开头并在 C 中显示的所有可能单词(使用二叉树的字典实现)

c - 出现错误 "void can' t 未通过”

c - 使用 scanf 读取整数或字符串