$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++;
// }
// }