【问题标题】:Specifying Big-O notation in java (algorithms) [closed]在java(算法)中指定Big-O表示法[关闭]
【发布时间】:2020-10-22 13:18:02
【问题描述】:

我在完全理解 big-o 表示法方面遇到了困难,希望对所提供图片中的以下问题提供一些指导。 对于第一个问题,我的答案是 O(n^2),但是我对我的答案并不完全有信心。任何帮助都会非常感谢。

【问题讨论】:

  • @Seelenvirtuose 第一个不是 O(n)。它有 count = count * 5 进行更新。
  • @khelwood 还有什么? 5 是一个常数,不计入 O 表示法。 O(n/5) == O(n)!
  • 如果将 n 增加 5 倍,您将获得一次额外的迭代。这不是线性的。
  • 我认为是 O(log n)。
  • @Yousaf 如果将 n 乘以某个常数因子(在本例中为 5),则步数会增加某个常数(在本例中为 1)。这是 O(log n)。

标签: java algorithm big-o computer-science


【解决方案1】:

在第一个问题中,复杂度为 O(log5N),即O(log N),因为迭代次数受条件5^N 限制。除了评论,在第一个问题中计算的是 product,而不是 sum

第二个问题迭代次数为(N - 5) * (2 * N) * 1000,大致等于2000 * N^2,所以big-O为O(N^2)

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多