background image

 
 $key   = $array[0];
 $left_arr  = array();
 $right_arr  = array();
 
 for ($i=1; $i<$len; $i++) {
  if ($key >= $array[$i]) {
   $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);
}
//$array    = array("2", "4", "1", "3", "1");
//print_r(quick_sort($array));
 
//分治|合并算法排序(数组排序)前提:数组 A[p...q]和 A[q+1...r]已经排好序、适合:元
素个数较多的排序
//参数:merge_sort(目标数组,开始位置,结束位置)
//Failure
//function merge_sort($array, $p, $q, $r) {
// 
// $n1   = $q - $p + 1;
// $n2   = $r - $q;
// for($i=1; $i<$n1; $i++) {
//  $arr1 = $array[$p+$i-1];
//  for ($j=1; $j<$n2; $j++) {
//   $arr2   = $arr1[$q+$j];
//   $i    = 1;
//   $j    = 1;
//   for($k=$p; $k<=$r; $k++) {
//    if($arr1[$i] <= $arr2[$j]) {
//     $array[$k]   = $arr1[$i];
//     $i++;
//    }else {
//     $array[$k]   = $arr2[$j];
//     $j++;
//    }
//   }