Quick sort is a comparison sort, which means it can sort elements of any type. Quick sort can be said to be an improvement of bubble sort.
The schematic diagram of the quick sort implementation idea is as follows:
Note: The horizontal line is the pivot value
The quick sort algorithm code is as follows:
<?php function quick_sort($my_array) { $loe = $gt = array(); if(count($my_array) < 2) { return $my_array; } $pivot_key = key($my_array); $pivot = array_shift($my_array); foreach($my_array as $val) { if($val <= $pivot) { $loe[] = $val; }elseif ($val > $pivot) { $gt[] = $val; } } return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt)); } $my_array = array(3, 0, 2, 5, -1, 4, 1); echo '原始数组 : '.implode(',',$my_array).'\n'; $my_array = quick_sort($my_array); echo '排序后数组 : '.implode(',',$my_array);
Output:
原始数组:3,0,2,5,-1,4,1 排序后数组:-1,0,1,2,3,4,5
Related function introduction:
array_shift ( array &$array ) : mixed
array_merge ( array $array1 [, array $... ] ) : array
The above is the detailed content of How to implement quick sort in PHP?. For more information, please follow other related articles on the PHP Chinese website!