这篇文章主要为大家详细介绍了PHP利用二分法查找数组是否包含某一元素的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!
二分法查找数组是否包含某一元素,兼容正反序,代码实现:代码如下:
<?php
/* 512笔记 www.512Pic.com */
$searchValue = (int)$_GET['key'];
function search(array $array, $value)
{
$max = count($array)-1;
$min = 0;
$isAscSort = $array[$min] < $array[$max];
while (TRUE) {
$sum = $min+$max;
$midKey = (int)($sum%2 == 1 ? ceil($sum/2) : $sum/2);
if ($max < $min) {
return -1;
} else if ($value == $array[$midKey]) {
return 1;
} else if ($value > $array[$midKey]) {
$isAscSort ? $min = $midKey+1 : $max = $midKey-1;
} else if ($value < $array[$midKey]) {
$isAscSort ? $max = $midKey-1 : $min = $midKey+1;
}
}
}
$array = array(
'4', '5', '7', '8', '9', '10', '11', '12'
);
// 正序
echo search($array, $searchValue);
// 逆序
rsort($array);
echo search($array, $searchValue);
本文来自:http://www.512pic.com/173/15693-0.html
注:关于PHP利用二分法查找数组是否包含某一元素的简单示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。
关键词:
512笔记收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。