基本算法个人PHP 实现(一)

<?php
/**
 * php二分查找法
 */
 $arr = array(0,4,5,6,7,8,9);

function search($arr, $low,$high,$k){
    if($high >= $low){
        $middle = intval(($high+$low)/2);  //ceil 和intval 无差别
        if($arr[$middle] == $k){
           return '找到';
        }elseif ($arr[$midddle] > $k){
           return  search($arr,$low,$middle-1,$k);
        }else{
           return  search($arr,$middle+1, $high,$k);
        }
    }
    return '无';
}
//echo search($arr,0,count($arr)-1,3);
/**
* PHP 遍历
*/
function seq_sch($array, $n, $k){  
    $array[$n] = $k;  
    for($i=0; $i<$n; $i++){  
        if($array[$i]==$k){  
            break;  
        }  
    }  
    if ($i<$n){  
        return $i;  
    }else{  
        return -1;  
    }  
}  
//线性表删除
//要删除的值的指针指向后面的值 再删掉最后面多余的指针  这里说指针有点牵强
function test($arr,$i){
    $length = count($arr);
    for($j = $i; $j < $length; $j++){
        $arr[$j] = $arr[$j+1];
    }
    array_pop($arr); 
    return $arr;
}
//print_r(test($arr,1));
//冒泡排序
$arr = array(3, 2, 8, 1,4);
$n = count($arr);
for($i=0;$i<$n;$i++){
   for($j = $n-1;$j>$i;$j--){
      if($arr[$j] <$arr[$j-1]){
          $temp = $arr[$j];
          $arr[$j] = $arr[$j-1];
          $arr[$j-1] = $temp;
      }
   }
}
print_r($arr);

?>

 

posted @ 2012-06-11 23:41  ﹏Sakura  阅读(335)  评论(0编辑  收藏  举报