2分木探索
必要があって書いた。
https://gist.github.com/4037394
<?php function search_tree( $src = array(), $target, $end, $begin = false ) { if( $begin === false ) { $begin = floor( $end / 2 ); } //配列ソートする? //中央木一致 if( $src[ $begin ] == $target ){ return $begin; } //ノード探索終了 if( $begin == $end ) { return $begin; } //shift left if( $src[ $begin ] > $target ){ $end = $begin; $begin = floor( $end / 2 ); //shift right }else{ $begin = $begin + ceil( ( $end - $begin ) / 2 ); } //終了するま再帰検索 return search_tree( $src, $target, $end, $begin ); } $array = array( 10, 39, 40, 41, 42, 59, 60, 80, 92, 211, ); print search_tree( $array, 40, count($array) );
さくっと作れると思ったら意外と時間かかった。。。