Home > Article > Backend Development > How to implement quick sort in PHP?
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 ) : mixedarray_shift() moves the first unit of array out and returns it as the result, decrements the length of array by one and moves all other units forward by one. All numeric key names will be changed to count from zero, and text key names will remain unchanged. array_merge() function merges one or more arrays;
array_merge ( array $array1 [, array $... ] ) : arrayarray_merge() merges the cells of one or more arrays, and the values in one array are appended to the previous array . Returns the resulting array. This article is an introduction to the PHP quick sort algorithm. I hope it will be helpful to friends in need!
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!