基本算法个人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); ?>
生命只有一次。