【问题标题】:Number of actions of array_unique PHParray_unique PHP 的操作数
【发布时间】:2011-11-29 05:54:45
【问题描述】:

有人知道array_unique()Big O 吗?

我没有查看源代码,但我想它会循环遍历每个值并检查它是否在数组中,即O(n^2),这样是否正确?

谢谢

【问题讨论】:

标签: php big-o array-unique


【解决方案1】:

它是O(nlogn),因为它使用排序而不是您的O(n^2) 扫描。

请注意,密钥是保留的。 array_unique() 首先对作为字符串处理的值进行排序,然后将保留每个值遇到的第一个键,并忽略所有后续键。这并不意味着将保留未排序数组中第一个相关值的键。

引自http://php.net/manual/en/function.array-unique.php

编辑:记得用谷歌搜索,查看手册,检查现有问题,然后提问。

【讨论】:

  • 它做了谷歌并检查了手册,只找到了stackoverflow.com/questions/2473989/…,它没有列出array_unique
  • @Lizard 我要检查array_unique 是否使用排序,并用谷歌搜索array_unique sort 作为其关键字。然后第一个结果就是我想要的 :-) 因为它对数组进行排序然后进行线性扫描,所以时间复杂度将是 O(nlogn),这是排序成本。
猜你喜欢
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
相关资源
最近更新 更多