php关联数组排序(快速排序)
起因
好吧,我承认最近我跟快速排序干上了,各种测试编写快速排序程序,现在就用php实现快速排序,跟之前文章不同,这次php的快排是能解决实际需要的。
QuickSortProcess ( $array, 0, count ( $array ) - 1 );print_r ( $array );/** * Description:快速排序中获取中枢点的位置 */function QuickPartition(&$array, $left, $right) {// 1.基准定义$stand = $array [$left];// 2.从区间两端向中间扫描,直到$left == $right为止while ( $left < $right ) {while ( $left < $right && $array [$right] ['age'] >= $stand ['age'] ) {$right --;}if ($left < $right) {$array [$left ++] = $array [$right];}while ( $left < $right && $array [$left] ['age'] <= $stand ['age'] ) {$left ++;}if ($left < $right) {$array [$right --] = $array [$left];}}// 3.获取中枢点位置$array [$left] = $stand;return $left;}/** * Description:快速排序主流程函数 */function QuickSortProcess(&$array, $begin, $end) {// 1.变量定义$pivot = NULL; // 中枢点if ($begin < $end) {$pivot = QuickPartition ( $array, $begin, $end );QuickSortProcess ( $array, $begin, $pivot - 1 );QuickSortProcess ( $array, $pivot + 1, $end );}}