<?php
/**
 * php 快速排序
 */
$arr = array(7,8,6,5,3,10);
function quick($array){
        if(count($array) <=1) return $array;
        $k = $array[0];
        $left = array();
        $right = array();
        for($i =1; $i< count($array); $i++){
            if($array[$i] <= $k){
                $left[] = $array[$i];
            }else{
                $right[] = $array[$i];
            }
        }
        $left = quick($left);
        $right = quick($right);
        return array_merge($left,array($k),$right);
}
print_r(quick($arr));

?>

  核心思想就是每次取得 要排序的数组首个元素。 然后和数组的其他元素比较  大于他则排在左边否则在右。

  然后在对他左边的集合进行相同排序  直到左边只存在 0~ 1个元素。 (0代表本次排序的首元素最小。 1则代表只有1个元素大于他)

  

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-15
猜你喜欢
  • 2021-07-16
  • 2021-09-27
  • 2021-11-23
  • 2022-02-16
  • 2021-11-30
相关资源
相似解决方案