ホームページ >php教程 >php手册 >PHP データ構造とアルゴリズム (PHP 記述) 検索と二分探索

PHP データ構造とアルゴリズム (PHP 記述) 検索と二分探索

WBOY
WBOYオリジナル
2016-06-13 12:00:20997ブラウズ

コードをコピー コードは次のとおりです:


/**
*
*
* を検索します*/
// 順序検索
functionnormal_search($arrData,$val) {
$len = count($arrData);
if($len == 0) return
for($) i = 0 ;$i <$len; $i ) {
echo "find No.",$i 1," value = ",$arrData[$i]," is = ",$val," ? < br/>";
// 見つかりました
if($arrData[$i] == $val) return $i;
}
return -1;
}

//テスト順序検索
$arrData = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67);
echonormal_search($arrData,6),"
";
echonormal_search($arrData,66),"

//二分法検索 (順序付けされた列の検索)
function binary_search($arrData,$val) {
$len = count($arrData)
if($len == 0) return <🎜; >
$start = 0;
$end = $len - 1;

while($start <= $end) {
$middle = intval(($start $end) )/2);
echo "start = ",$start," end = ",$end," middle = ",$middle,"
";
if($ arrData[ $middle] == $val) {
return $middle;
} elseif ($arrData[$middle] > $val) {
$end = $middle - 1 ; ($arrData[$middle] < $val) {
$start = $middle 1;
}
return
}

//バイナリ検索をテストします
$arrData = array(1,2,3,4,5,7,8,9,11,23,56,100,104,578,1000);
echo binary_search($arrData,578 ),"< ;br/>";
echo binary_search($arrData,66),"
";


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。