PHP: What is the complexity [i.e O(1),O(n)] of the function 'count'? [duplicate]
What is the Big-O time complexity of the count()
function for arrays?
Example
$x = array(1,2,3);
echo count($x); // how many operation does it takes to count the elements
// of the array? is it 3, or is it 1
$ time php -r '$a=range(1,1000000); $b=0; for($i=0;$i<10;$i++) $b=count($a);'
real 0m0.458s
$ time php -r '$a=range(1,1000000); $a=array(1); $b=0; for($i=0;$i<10;$i++) $b=count($a);'
real 0m0.457s
Seems pretty O(1) to me.
Tested PHP version: PHP 5.3.3-1ubuntu9.1 with Suhosin-Patch (cli) (built: Oct 15 2010 14:00:18)
Arrays have O(1) size- that is, their size is stored somewhere. The language updates the count on insertion/deletion.
精彩评论