PHP实现冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
以下是一个PHP实现的冒泡排序代码:
<?php
function bubbleSort(&$array) {
$n = count($array);
// 遍历所有数组元素
for ($i = 0; $i < $n - 1; $i++) {
// 最后 i 个元素已经到位
for ($j = 0; $j < $n - $i - 1; $j++) {
// 如果前面的元素大于后面的元素,则交换它们
if ($array[$j] > $array[$j + 1]) {
// 交换
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
}
}
}
}
// 示例用法
$array = [64, 34, 25, 12, 22, 11, 90];
bubbleSort($array);
echo "排序后的数组: \n";
print_r($array);
?>
在这个代码中,bubbleSort
函数接受一个数组引用(&$array
),这样可以直接修改传入的数组。函数内部有两个嵌套的for循环:外部循环控制遍历的次数,内部循环进行实际的比较和交换操作。如果前面的元素大于后面的元素,就交换它们的位置。这个过程会重复进行,直到数组完全排序。
请注意,冒泡排序的时间复杂度为O(n^2),在处理大数据集时可能不够高效。对于实际应用,您可能会考虑使用更高效的排序算法,如快速排序或归并排序。