function quickSort(&$arr, $left=NULL, $right=NULL) { if($left===NULL) $left = 0; if($right===NULL) $right = count($arr)-1; if ($left < $right) { $parindex = partition($arr, $left, $right); quickSort($arr, $left, $parindex-1); quickSort($arr, $parindex+1, $right); } return $arr; }; function partition(&$arr, $left, $right) { $pivot = $left; $index = $pivot + 1; for ($i=$index; $i<=$right; $i++) { if($arr[$i] < $arr[$pivot]) { swap($arr, $i, $index); $index++; } } swap($arr, $pivot, $index-1); return $index-1; } function swap(&$arr, $i, $j) { $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; return $arr; } $arr = [5,1,8,6,4,3,9,7,2,0]; quickSort($arr); var_dump(json_encode($arr));
评论已关闭。