快速排序

// 快速排序
// 找到当前数组中的任意一个元素(一般选择第一个元素),分出大于小于等于的三个部分,再3合并成一个数组,递归调用
function quick_sort($array) 
{
  //判断参数是否是一个数组
  if(!is_array($array)) return false;
  //数组长度为1,直接返回数组
  $length = count($array);
  if($length <= 1) return $array;
  //数组元素有多个,则定义两个空数组
  $left = $right = array();
  //使用for循环进行遍历,把第一个元素当做比较的对象
  for($i=1; $i < $length; $i++)
  {
    //判断当前元素的大小
    if($array[$i] < $array[0]){
      $left[] = $array[$i];
    }else{
      $right[] = $array[$i];
    }
  }
  //递归调用
  $left = quick_sort($left);
  $right = quick_sort($right);
  //将所有的结果合并
  return array_merge($left,array($array[0]),$right);
}
var_dump(quick_sort($array));
原文地址:https://www.cnblogs.com/yangfei123/p/10108054.html