【问题标题】:Very simple time Complexity question非常简单的时间复杂性问题
【发布时间】:2011-07-28 21:36:09
【问题描述】:

如果我有一个函数:8x+5y+20z=n 我想使用穷举搜索来找到数字 n 的 x,y,z 的所有可能解。搜索 x,y,z 的可能范围分别是 [0,n/8] [0,n/5] 和 [0,n/20],如果我使用嵌套的 for 循环,那么我的时间复杂度是 O( n^3/8*5*20) 对吗?

我昨天被一个不会说简单英语的人介绍给我的算法分析很糟糕......

请给点建议

【问题讨论】:

    标签: algorithm complexity-theory


    【解决方案1】:

    您通常会省略渐近符号中的常量...所以 O(n^3)。假设您只是在寻找整数解决方案(对于给定的 n),那么您的复杂性是正确的,假设您没有尝试任何过于花哨的东西来修剪搜索空间(即,您检查整个间隔)。

    【讨论】:

      【解决方案2】:

      您可以通过设置一些条件来大幅降低计算时间:

      • 仅尝试 x 和 y -> z= (n - 8x - 5y)/20
      • n 和 y 具有相同的奇偶性
      • 如果 n 是 5 的倍数,则等于 x 是 5 的倍数
      • 等等...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-10
        • 1970-01-01
        • 2011-08-25
        • 1970-01-01
        • 2011-10-28
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        相关资源
        最近更新 更多