二分查找法在索引大记录数时速度非常快,比遍历记录的速度快上若干数量级。
php程序员站
通常在数据小时看不出有什么特点,有时还不如遍历数据快,但在遍历大记录时他的速度却是显而易见的。
www.phperz.com
大家可以改变下面例子中$arr 数组的不同大小来感受一下二分查找法的速度。
phperz~com
下面是二分查找法在php应用里的一个简单例子。希望对大家有用。 www~phperz~com
|
以下为引用的内容: www.phperz.com $arr=range(1,50); //建立一个50个元素的连续数组 //print_r($arr); $a=30; //待查找的数 $start=0; //查找的起始位址 $end=count($arr)-1; //查找的结束位址 $z=0; //计录循环次数 while ($statr<=$end){ $z++; $i=floor(($start + $end)/2); $j=$arr[$i]; // 中间记录 if ($a<$j){ $end=$i-1; } elseif ($a > $j){ $start=$i+1; } else { $find=$arr[$i]; break; } } echo $find; echo "<br>循环了".$z."次"; ?> </body> </html> www~phperz~com |