Quicksort is practically the fastest way to sort an array of data. PHP’s array sorting function sort() uses QuickSort.
How Quick Sort works?
This is how QuickSort operates on a list of elements:
- Picks a data element (called pivot) from an
array; - Makes a comparison of all other elements with the pivot;
- Creates two subsets, one with values smaller than the pivot and the other with larger values;
- Repeats the above steps recursively on all the subsets until all subsets are broken down to individual elements;
- Groups together all subsets to produce sorted array of data.
Although you have a function sort() in PHP that can do array sorting by implementing QuickSort, yet the below function from WikiBooks can be helpful in understanding the process.
function quicksort( $array ) {
if( count( $array ) < 2 ) { return $array; } $left = $right = array( ); reset( $array ); $pivot_key = key( $array ); $pivot = array_shift( $array ); foreach( $array as $k => $v ) {
if( $v < $pivot ) $left[$k] = $v; else $right[$k] = $v; } return array_merge(quicksort($left), array($pivot_key => $pivot), quicksort($right));
}
//Using quicksort()
$array = quicksort( $array ); //returns sorted array.
To do quicksort with the builtin sort() function:
sort( $array ); //returns true on success, false otherwise