//两分查找
Function search($array,$number)
{
static $num = 1;
$count = count($array);
$cent = floor($count/2);
asort($array);
if($array[$cent]==$number)
{
echo "Num ".$num."<br>";
return true;
}
$num++;
If($array[$cent]<$number){
search(array_slice($array,$cent+1));
}else{
search(array_slice($array,0,$cent));
}
}
search($array,$number);
//常用的php排序算法
//快速排序
function quick_sort(&$array, $start, $end)
{
if($end <= $start) return;
$key = $array[$start];
$left = $start;
$right = $end;
while($left < $right)
{
while($left < $right && $array[$right] > $key)
{
$right--;
$array[$left] = $array[$right];
}
while($left < $right && $array[$left] < $key)
{
$left++;
$array[$right] = $array[$left];
}
}
$array[$right] = $key;
quick_sort(&$array, $start, $right - 1);
quick_sort(&$array, $right+1, $end);
}
function quick_sort($array)
{
if(count($array) <= 1) return $array;
$key = $array[0];
$rightArray = array();
$leftArray = array();
for($i = 1; $i < count($array); $i++)
{
if($array[$i] >= $key) {
$rightArray[] = $array[$i];
}else{
$leftArray[] = $array[$i];
}
}
$leftArray = quick_sort($leftArray);
$rightArray = quick_sort($rightArray);
return array_merge($leftArray, array($key), $rightArray);
}