冒泡排序#

算法实现原理#

数组的第n+1个数值和第n个数值进行循环对比,按照从大到小或者从小到大的顺序将较大或较小的值向前位移,最终按顺序得出一个排好序的数组。

实现代码#

$array = [2, 4, 9, 3, 5, 7, 8, 1, 6, 10];

function bubble_sort($array) {
    for($i = 0; $i < count($array); $i++) {             // 循环第n个数值
        for($j = $i + 1; $j < count($array); $j++) {    // 循环第n+1个数值
            // 将n和n+1两个数值进行对比,从大到小排序使用小于号,从小到大排序使用大于号
            if ($array[$i] > $array[$j]) {
                $tmp = $array[$i];          // 将第n个值放入临时变量中方便互换位置后赋值
                $array[$i] = $array[$j];    // 将第n+1个值赋值给第n个
                $array[$j] = $tmp;          // 将第n个值互换给第n+1个值
            }
        }
    }

    return $array;
}

$result = bubble_sort($array);

print_r($result);

结果:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
)