用双重 for 循环的话是不是也可以解决

<?php

$arr = [3, 2, 5, 1, 10, 23, 13];

for ($j = 0; $j < count($arr) - 1; $j++) {
    for ($i = 0; $i < count($arr) - 1; $i++) {
        if ($arr[$i] > $arr[$i + 1]) {
            list($arr[$i], $arr[$i + 1]) = array($arr[$i + 1], $arr[$i]);
        }
    }
}
var_dump($arr);
讨论数量: 1

可以,只是你这个时间复杂度为 O(N²) 。

3年前 评论
qingshui (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!