顺序查找和二分查找
来源//blog.chenapp.com/archives/120
http://blog.csdn.net/zhuzhao/article/details/3969044
// 二分查找(数组里查找某个元素)
- //search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值
- function search($array, $k, $low=0, $high=0)
- {
- if(count($array)!=0 and $high == 0) //判断是否为第一次调用
- {
- $high = count($array);
- }
- if($low <= $high) //如果还存在剩余的数组元素
- {
- $mid = intval(($low+$high)/2); //取$low和$high的中间值
- if ($array[$mid] == $k) //如果找到则返回
- {
- return $mid;
- }
- elseif ($k < $array[$mid]) //如果没有找到,则继续查找
- {
- return search($array, $k, $low, $mid-1);
- }
- else
- {
- return search($array, $k, $mid+1, $high);
- }
- }
- return -1;
- }
- $array = array(4,5,7,8,9,10); //测试search函数
- echo search($array, 8); //调用search函数并输出查找结果
16 // 顺序查找(数组里查找某个元素)
17 function seq_sch( $array , $n , $k ){
18 $array [ $n ] = $k ;
19 for ( $i = 0 ; $i < $n ; $i ++ ){
20 if ( $array [ $i ] == $k ){
21 break ;
22 }
23 }
24 if ( $i < $n ){
25 return $i ;
26 } else {
27 return - 1 ;
28 }
29 }
还没有评论,来说两句吧...