详解PHP基础算法:冒泡、选择、插入、快速、归并

1. 冒泡排序

冒泡排序是最基础、也是最简单的一种排序算法。它通过不断交换相邻两个元素的位置,将较大(或较小)的元素逐渐“浮”到数组的末尾,从而实现排序的目的。

1.1 原理

冒泡排序的基本思想就是从第一个元素开始,依次比较相邻两个元素的大小,若前面的元素大于后面的元素,则交换它们的位置,直到比较完所有相邻元素。这样一次遍历之后,最大(或最小)的元素就会“浮”到数组的末尾。然后再从头开始,重复上述步骤,每次遍历都将一个最大(或最小)的元素“浮”到末尾,直到整个数组有序。

1.2 实现

下面是使用PHP实现冒泡排序的代码示例:

function bubbleSort($arr) {

$n = count($arr);

for ($i = 0; $i < $n - 1; $i++) {

for ($j = 0; $j < $n - $i - 1; $j++) {

if ($arr[$j] > $arr[$j + 1]) {

// 交换位置

$temp = $arr[$j];

$arr[$j] = $arr[$j + 1];

$arr[$j + 1] = $temp;

}

}

}

return $arr;

}

// 测试

$arr = [5, 3, 8, 2, 1, 4];

$result = bubbleSort($arr);

print_r($result);

在以上代码中,我们首先定义了一个名为`bubbleSort`的函数,该函数接受一个待排序的数组作为参数。接着使用双层循环来实现冒泡排序的逻辑,外层循环控制遍历的轮数,内层循环用于比较相邻两个元素的大小,并进行交换。最后,函数返回排序后的数组。

1.3 时间复杂度和空间复杂度

冒泡排序的时间复杂度是O(n^2),其中n是数组的长度。空间复杂度是O(

后端开发标签