php 冒泡排序&快速排序

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$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);
} 

你可能感兴趣的:(AI与算法)