PHP实现冒泡排序法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$arr = array(1,43,54,62,21,66,32,78,36,76,39);

// 冒泡排序
function bubble_sort($arr)
{
    $length = count($arr);
    $tmp = null;

    // 该层循环控制冒泡的轮数
    for ($i=1; $i < $length; $i++) {
        // 该曾循环控制每轮冒出一个数,要比较的次数
        for ($j=0; $j < $length-$i; $j++) {
            if ($arr[$j] > $arr[$j+1]) {
                // 交换两个值的位置
                $tmp = $arr[$j+1];
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
    }

    return $arr;
}

$res = bubble_sort($arr);

echo '<pre>';
var_dump($res);
echo '<pre>';