<?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);?>