php 冒泡排序&快速排序
今天了解下php基础笔试题中的算法题,最基本的冒泡以及快速排序。
冒泡排序两种方法:
function maopao($array)
{
$count = count($array);
if ($count <= 0) return false;
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
function maopao($b)
{
$len= count($b);
if ($len<= 0) return false;
for($k=1;$k<$len;$k++)
{
for($j=0;$j<$len-$k;$j++){
if($b[$j]>$b[$j+1]){
$temp =$b[$j+1];
$b[$j+1] =$b[$j] ;
$b[$j] = $temp;
}
}
}
}
快速排序
function quick_sort($array) {
if (count($array) <= 1) return $array;
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i<count($array); $i++){
if ($array[$i] <= $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}