php实现 快速排序法
封面图
•
2025-10-21
•
PHP
158
0
0
0
在 PHP 中实现 **快速排序(Quick Sort)** 是一个常见的算法练习。快速排序是一种基于分治策略的高效排序算法,其基本思想是: 1. 从数组中选择一个“基准”元素(pivot)。 2. 将所有小于基准的元素移到左边,大于基准的元素移到右边。 3. 递归地对左右子数组重复上述过程。 下面是一个简单的 PHP 快速排序实现示例: ```php <?php function quickSort($arr) { // 基本情况:如果数组长度小于等于 1,直接返回 if (count($arr) <= 1) { return $arr; } // 选择基准元素(这里选第一个元素) $pivot = $arr[0]; // 初始化左右子数组 $left = []; $right = []; // 遍历数组,将元素分别放到 left 或 right 数组中 for ($i = 1; $i < count($arr); $i++) { if ($arr[$i] < $pivot) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } // 递归排序左右子数组,并合并结果 return array_merge(quickSort($left), [$pivot], quickSort($right)); } // 示例用法 $array = [5, 3, 8, 4, 2, 7, 1, 10]; $sortedArray = quickSort($array); echo "排序后的数组:\n"; print_r($sortedArray); ?> ``` ### 输出结果: ``` 排序后的数组: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 7 [6] => 8 [7] => 10 ) ``` --- ### 可选优化点: - **基准选择**:可以随机选择基准以避免最坏情况(如已排序数组)。 - **原地排序**:上面的实现不是原地排序,而是使用了额外的空间。如果你需要更高效的版本,可以使用 **Lomuto** 或 **Hoare** 分区方法进行原地排序。 --- 如果你需要一个**原地版本的快速排序**(不使用额外空间),我也可以提供。需要的话请告诉我!
上一篇:
宝宝总爱趴着睡,会影响健康吗?
下一篇:
五里雾中 成语故事
标题录入,一次不能超过6条
留言
评论