冒泡排序是一种简单的排序算法,其主要思想是比较相邻的两个元素,根据需要交换位置,将较大(或较小)的元素逐渐冒泡到数组的一端,从而实现排序。
1、从小到大排序
- function bubbleSort($arr) {
- $len = count($arr);
- for ($i = 0; $i < $len - 1; $i++) {
- for ($j = 0; $j < $len - 1 - $i; $j++) {
- if ($arr[$j] > $arr[$j+1]) {
- // 交换位置
- $temp = $arr[$j];
- $arr[$j] = $arr[$j+1];
- $arr[$j+1] = $temp;
- }
- }
- }
- return $arr;
- }
- // 测试示例
- $testArray = [5, 3, 8, 4, 2];
- $result = bubbleSort($testArray);
- print_r($result);
2、倒序排列
- function reverseBubbleSort($arr) {
- $len = count($arr);
- for ($i = 0; $i < $len - 1; $i++) {
- for ($j = 0; $j < $len - 1 - $i; $j++) {
- if ($arr[$j] < $arr[$j+1]) { // 将比较条件改为小于号
- // 交换位置
- $temp = $arr[$j];
- $arr[$j] = $arr[$j+1];
- $arr[$j+1] = $temp;
- }
- }
- }
- return $arr;
- }
- // 测试示例
- $testArray = [5, 3, 8, 4, 2];
- $result = reverseBubbleSort($testArray);
- print_r($result);