wslsg 发表于 2017-4-11 12:03:50

PHP算法:冒泡排序与快速排序

  写一个排序算法,可以是冒泡排序或者快速排序,假设待排序对象是一个二维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的基础知识)

//冒泡排序

function bubble_sort($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 quicksort($array) {
   

if (count($array) <= 1) return $array;

   

$key = $array;
   

$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 = quicksort($left_arr);
   

$right_arr = quicksort($right_arr);

   


return array_merge($left_arr, array($key), $right_arr);


}

 
页: [1]
查看完整版本: PHP算法:冒泡排序与快速排序