算法题:冒泡排序

function bubbleSort($arr) {
    $len = count($arr);   // 获取要排序数组的长度
    for ($i = 0; $i < $len; $i++) {    // 外层循环遍历整个数组
        for ($j = 0; $j < $len - $i - 1; $j++) {  // 内层循环用于比较相邻元素,次数随外层循环进行而减少
            if ($arr[$j] > $arr[$j+1]) {   // 比较相邻元素,如果前一个大于后一个,则交换它们的位置
                // 相邻元素交换位置
                $temp = $arr[$j];   // 将前一个元素存入临时变量 $temp
                $arr[$j] = $arr[$j+1];  // 将后一个元素赋值给前一个元素
                $arr[$j+1] = $temp;  // 将 $temp 中存储的前一个元素赋值给后一个元素
            }
        }
    }
    return $arr;  // 返回排好序的数组
}

//示例
$arr = [3, 1, 6, 2, 9, 5];  // 定义要排序的数组
$result = bubbleSort($arr);  // 将数组传入冒泡排序函数
print_r($result);  // 输出排序后的结果

结果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 5
    [4] => 6
    [5] => 9
)

posted @ 2023-06-12 22:20  波罗斯の程序日记  阅读(3)  评论(0编辑  收藏  举报