Пузырьковая сортировка индексного массива

function BubbleSort($arrSort = []) // функция пузырьковой сортировки индексного массива
{
    if (count($arrSort) === 0) return false; // пустой массив нет смысла сортировать, функция вернет лож
    // алгоритм пузырьковой сортировки
    for ($keyFirst = 0; $keyFirst < count($arrSort); $keyFirst++) { // получаем в цикле номер первого сверяемого ключа массива
        for ($keySecond = 0; $keySecond < count($arrSort); $keySecond++) { // получаем в подцикле номер второго сверяемого ключа массива
            if ($arrSort[$keyFirst] < $arrSort[$keySecond]) { // если значение массива по первому ключу меньше чем по второму ключу
                list($arrSort[$keyFirst], $arrSort[$keySecond]) = [$arrSort[$keySecond], $arrSort[$keyFirst]]; // меняем местами значения в массиве
            }
        }
    }
    return $arrSort;
}

$arr = array(); // создадим пустой массив

do { // заполним массив случайными числами в цикле
    $var = rand(0, 100); // получаем случайное число от 0 до 100
    if (in_array($var, $arr) === false) { // если такого значения еще нет в массиве, то добавим его в массив
        $arr[] = $var; // новый ключ будет назначен автоматически (следующее свободное положительное число)
    }
} while (count($arr) < 5); // после выполнения кода проверка размера массива, если меньше 5 то повторить цикл

var_dump(BubbleSort($arr)); // вызов функции и вывод дампа полученного результата
array(5) {
  [0]=>
  int(9)
  [1]=>
  int(14)
  [2]=>
  int(34)
  [3]=>
  int(54)
  [4]=>
  int(61)
}

php array BubbleSort while

просмотров: 1118