php实现冒泡排序

PHP实现冒泡排序
冒泡排序是一种简单的排序算法,通过重复遍历待排序的列表,比较相邻的元素并交换它们的位置来完成排序。以下是PHP实现冒泡排序的详细方法:
基本实现
function bubbleSort($array) {
$length = count($array);
for ($i = 0; $i < $length - 1; $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;
}
优化版本
优化后的冒泡排序可以减少不必要的比较次数,提高效率:
function optimizedBubbleSort($array) {
$length = count($array);
for ($i = 0; $i < $length - 1; $i++) {
$swapped = false;
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;
$swapped = true;
}
}
if (!$swapped) {
break;
}
}
return $array;
}
使用方法
$unsortedArray = [64, 34, 25, 12, 22, 11, 90];
$sortedArray = bubbleSort($unsortedArray);
print_r($sortedArray);
注意事项
冒泡排序的时间复杂度为O(n²),不适合处理大规模数据。但对于小型数据集或教学目的,冒泡排序是一个很好的选择。优化后的版本在某些情况下可以提前终止排序过程,提高效率。







