熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php二分法查找數組是否包含某一元素

2013-11-15 12:30:58  來源: PHP編程 

  二分法查找數組是否包含某一元素兼容正反序代碼實現

 代碼如下:
<?php

$searchValue = (int)$_GET[key];

function search(array $array $value)
{
$max = count($array);
$min = ;
$isAscSort = $array[$min] < $array[$max];

while (TRUE) {
$sum = $min+$max;
$midKey = (int)($sum% == ? ceil($sum/) : $sum/);

if ($max < $min) {
return ;
} else if ($value == $array[$midKey]) {
return ;
} else if ($value > $array[$midKey]) {
$isAscSort ? $min = $midKey+ : $max = $midKey;
} else if ($value < $array[$midKey]) {
$isAscSort ? $max = $midKey : $min = $midKey+;
}
}
}

$array = array(

);
// 正序
echo search($array $searchValue);

// 逆序
rsort($array);
echo search($array $searchValue);

  
這個之前搜過看過百度百科的例子(Java的實現)還有一些其他技術宅寫的Code都有問題根本就沒實現這些人不測試就放出來誤導人大家可以去搜搜看下昨天閒來無事就自己寫一個分享給大家
這個沒考慮非順序鍵的數組主要是方法如果需要大家可以自己擴展下


From:http://tw.wingwit.com/Article/program/PHP/201311/21096.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.