【问题标题】:What algorithmic complexity has strlen() in PHP?PHP 中的 strlen() 算法复杂度如何?
【发布时间】:2011-10-28 18:43:45
【问题描述】:

我在面试时收到的这个问题。我的答案是O(1),对吗?

【问题讨论】:

标签: algorithm


【解决方案1】:

如果 strlen 计算字符串中的每个字符,那么它是 O(n)。如果 String 类在某个私有变量中保存了一个长度,那么它就是 O(1)。

【讨论】:

  • 我的目的是他们不计算字符))
  • 如果 PHP 的设计者想要不酷,他们可以让它变得复杂。有点奇怪,基于记忆的问题。
  • @Patrick87 strlen 不能“没有复杂性”。通常是 O(1) 或 O(n),n 是字符数。它甚至可以是 O(n!) 或 O(∞),但这种 strlen 算法在实践中从未使用过。
  • @WTP:不确定我说它可能“没有复杂性”......只是它可能有任何复杂性,正如你所说明的那样。当我们说一个整数变量可以具有 1 到 10 之间的任何值时,我们通常的意思是它必须具有其中一个……有点隐含。并且在实践中是否使用低效的 strlen() 实现是一个经验问题;要回答这个问题,您需要(在这种情况下)实际检查 PHP 实现......除非您假设可行的编程语言使用高效的实现,这 - 无论多么合理 - 代表着信念的飞跃。
  • @Patrick87 抱歉,我误解了您的第一条评论。我读到“让它完全没有复杂性。”
猜你喜欢
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 2015-02-27
  • 2011-04-20
  • 2021-04-22
相关资源
最近更新 更多