1. 程式人生 > 實用技巧 >php 冒泡演算法

php 冒泡演算法

<?php
/**
 * 氣泡排序演算法
 * @param array $arr
 * @return array
 */
function bubble_sort($arr) {
    // 判斷引數是否為陣列,且不為空
    if (!is_array($arr) || empty($arr)) {
        return $arr;
    }
    // 迴圈需要冒泡的輪數
    for ($i = 1, $len = count($arr); $i < $len; $i++) {
        // 迴圈每輪需要比較的次數
        for ($j = 0; $j < $len
- $i; $j++) { // 大的數,交換位置,往後挪 if ($arr[$j] > $arr[$j + 1]) { $temp = $arr[$j + 1]; $arr[$j + 1] = $arr[$j]; $arr[$j] = $temp; } echo $i; } } var_dump($arr);die; return $arr
; } $arr =[1,5,3,6,7,45,2]; bubble_sort($arr);

設計 思路 兩層迴圈

1,最裡面的一層設計

相鄰的兩個數做比較 後面一個比前面一個小,則用 臨時數轉換,使後面的哪一個大於前面的一個數值

轉化 過程 1. 1 3 5 6 7 2 45

2. 1 3 5 6 2 7 45

3 1 3 5 2 6 7 45

4 1 3 2 5 6 7 45

5 1 2 3 5 6 7 45

6最後一個不需要迴圈,因為已經達到需要效果排序