【发布时间】:2014-03-18 16:21:55
【问题描述】:
情况:我有一个包含可变数量元素的多维数组。例如
array(N) {
0 => array(3) { ... },
1 => array(8) { ... },
2 => array(1) { ... },
...
M => array(12) { ... },
...
N-1 => array(7) { ... }
}
我想找出这个子数组中元素的最大数量(在上面的例子中,它是 12)。一个简单的解决方案是 O(N) 线性搜索。
<?php
function max_length($2d_array) {
$max = 0;
foreach($2d_array as $child) {
if(count($child) > $max) {
$max = count($child);
}
}
return $max;
}
但是,我不禁想知道是否有一些巧妙的技巧可以优化此查找。所以我的问题是两部分的(尽管任何一部分的答案都可以解决):
- 是否有一种算法可以比 O(N) 更快地执行此搜索,而无需特殊要求(预排序等)?
- 是否有一个不起眼的 PHP 函数将在本机代码而不是我的用户级 PHP 脚本中执行此搜索?
【问题讨论】:
标签: php arrays computer-science