<?php
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));
$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) );