PHP数据结构(1) 二分查找

WBOY
Lepaskan: 2016-08-08 09:32:52
asal
982 orang telah melayarinya

       二分查找的基本思路是将一个有序数组取中间的那个值和所查找的值进行大小比较,当所查找的值大于数组的中间值时,即说明该有序数组中间值前的所有值都小于该查找的值,所以可以将该数组中间值前的所有值排除,再从该数组中间值到该数组末尾的值中继续查找所需值,其代码实现如下:

//二分查找
function bin_search($array,$search){
$low=0;
$height=count($array)-1;//获取数组长度

while($low$mid=floor(($low+$height)/2);//获取中间数,强制转换为floor类型,防止出错
if($array[$mid]==$search){
return $mid+1;//返回已找到的序号
}else if($array[$mid]//当中间值小于所查值时,则$mid左边的值都小于$search,此时要将$mid赋值给$low
$low=$mid+1;
}else if($array[$mid]>$search){
//此时说明中间值大于所查值,则$mid右边的所有值都大于$search,此时要将$mid赋值给$height
$height=$mid-1;
}
return "查找失败";//查找失败,数组中不存在该值

}

}
$arr=array(1,4,6,33,75,88,89,93);
echo bin_search($arr,33);
echo bin_search($arr,66);
?>

以上就介绍了PHP数据结构(1) 二分查找,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan