【问题标题】:Big O effeciency for multiple variables多变量的大 O 效率
【发布时间】:2010-12-27 16:37:50
【问题描述】:

我正在尝试评估输入为字符串数组的函数的效率。该算法始终遍历此数组中的每个项目。此数组中包含的字符串是可变长度的。在这个初始的 for 循环中,对每个字符串调用一个字符替换函数。我相信替换函数本身就是 O(n),其中 n 是字符串的长度。

所以我很困惑如何在这里评估大效率。如果 n 是数组的大小,我知道它至少会是 O(n)。但是对于可变字符串长度,您如何评价字符串替换的整体效率?你会说n是数组的大小,用其他变量来表示每个字符串的不同大小吗?

【问题讨论】:

  • 添加伪代码,让你的观点更清晰。

标签: algorithm performance big-o


【解决方案1】:

就个人而言,我会通过输入数据的大小(而不是数组的长度)来表达效率。因此,如果输入为t 字节,则运行时间将为O(t)。而这里的t也是所有字符串的共同长度。

【讨论】:

    【解决方案2】:

    我看到了两种说法(在很多可能中)。

    首先是说O(N),其中N是字符总数。

    您可以说的另一个是O(N*M),其中N 是字符串数,M 是每个字符串的平均字符数。请注意,这实际上与我上面的答案相同。你可以说M = k/N,所以你会得到O(N*k/N)O(k),其中k是所有字符串中的总字符数。

    【讨论】:

    • 这很聪明。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    相关资源
    最近更新 更多