在PHP编程中,排序是常见且重要的操作。以下是一些常见的排序算法的PHP实现,以及一个简单的比较表格来展示它们的效果。
1. 冒泡排序
```php

function bubbleSort($array) {
$length = count($array);
for ($i = 0; $i < $length; $i++) {
for ($j = 0; $j < $length - $i - 1; $j++) {
if ($array[$j] > $array[$j + 1]) {
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
}
}
}
return $array;
}
```
2. 选择排序
```php
function selectionSort($array) {
$length = count($array);
for ($i = 0; $i < $length; $i++) {
$min_index = $i;
for ($j = $i + 1; $j < $length; $j++) {
if ($array[$j] < $array[$min_index]) {
$min_index = $j;
}
}
$temp = $array[$i];
$array[$i] = $array[$min_index];
$array[$min_index] = $temp;
}
return $array;
}
```
3. 插入排序
```php
function insertionSort($array) {
$length = count($array);
for ($i = 1; $i < $length; $i++) {
$key = $array[$i];
$j = $i - 1;
while ($j >= 0 && $array[$j] > $key) {
$array[$j + 1] = $array[$j];
$j = $j - 1;
}
$array[$j + 1] = $key;
}
return $array;
}
```
4. 快速排序
```php
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));
}
```
排序算法比较
| 排序算法 | 平均时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 稳定性 |
|---|---|---|---|---|
| 冒泡排序 | O(n^2) | O(n^2) | O(1) | 稳定 |
| 选择排序 | O(n^2) | O(n^2) | O(1) | 不稳定 |
| 插入排序 | O(n^2) | O(n^2) | O(1) | 稳定 |
| 快速排序 | O(nlogn) | O(n^2) | O(logn) | 不稳定 |
以上表格展示了不同排序算法的性能特点,包括平均时间复杂度、最坏时间复杂度、空间复杂度和稳定性。在实际应用中,可以根据具体需求选择合适的排序算法。







