快速排序是一种常用的排序算法,也是最快的排序算法之一。其基本思想是通过一趟排序将待排序的数据分割成两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再对这两部分分别进行快速排序,递归地重复这个过程,直到整个序列有序。
- function quickSort($arr) {
- $length = count($arr);
- if ($length <= 1) {
- return $arr;
- }
- $pivot = $arr[0];
- $left = $right = [];
- for ($i = 1; $i < $length; $i++) {
- if ($arr[$i] < $pivot) {
- $left[] = $arr[$i];
- } else {
- $right[] = $arr[$i];
- }
- }
- return array_merge(quickSort($left), array($pivot), quickSort($right));
- }
- // 示例用法
- $testArr = [8, 3, 1, 6, 4, 7, 2, 5];
- $sortedArr = quickSort($testArr);
- print_r($sortedArr);