algorithm - 这段代码可能进入无限循环的时间复杂度是多少?

标签 algorithm time-complexity infinite-loop

我正在尝试找出这段代码的时间复杂度。

 while(m!=4){
        if(m>n)
               m=m-n
        else
               n=n-m
    }

我试过 m 和 n 的随机值,这使它成为一个无限循环。不知道怎么找?

最佳答案

这个时间复杂度只有在算法终止时才有意义。必要条件是 gcd(m, n) | 4。但这还不够。

现在很容易看出最坏情况(下降最慢)发生在m = 1n = 1 时,因此复杂度为O (最大(m, n))

关于algorithm - 这段代码可能进入无限循环的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54849810/

相关文章:

c++ - 获取 vector<float> 中 k 个最大值的索引的有效方法

c++ - C++程序的时空复杂性

c - 在 C 编程中退出 while(1) 循环

php - 在 VPS 服务器中运行 PHP 脚本 "forever"

javascript - 将 JavaScript 对象转换为数组以插入关系数据库

algorithm - 动态规划 : Optimal Binary Search Tree

python - 一种尝试无反馈分组的算法

Java ArrayList构造函数时间复杂度

C# - 如何创建不可检测的无限循环?

algorithm - 如何为 mst 的所有顶点对找到路径的最大边缘