编辑代码

<?php 
//PHP函数实战-PHP冒泡排序

//PHP冒泡排序 1
function bubbleSort($numbers) {
    $cnt = count($numbers);
    for ($i = 0; $i < $cnt - 1; $i++) {
        for ($j = 0; $j < $cnt - $i - 1; $j++) {
            if ($numbers[$j] > $numbers[$j + 1]) {
                $temp = $numbers[$j];
                $numbers[$j] = $numbers[$j + 1];
                $numbers[$j + 1] = $temp;
            }
        }
    }
 
    return $numbers;
}
 
$num = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0);
print_r(bubbleSort($num));

//PHP冒泡排序 2
$arr = [4, 9, 8, 6, 7, 3, 2, 1];

function bullingSort($arr) {
  $checkPoint = 0;
  while(true) {
    $swapCount = check($arr, $checkPoint);
    $checkPoint++;
    if ($swapCount <= 0) {
      return $arr;
    }
  }
}

function check(&$arr, $checkPoint) {
  $swapCount = 0;
  for ($i = count($arr) - 1; $i > $checkPoint; $i--) {
    if ($arr[$i] < $arr[$i - 1]) {
      swap($arr, $i);
      $swapCount++;
    }
  }
  return $swapCount;
}

function swap(&$arr, $i) {
  $tmp = $arr[$i];
  $arr[$i] = $arr[$i - 1];
  $arr[$i - 1] = $tmp;
}

print_r( bullingSort($arr) );