<?php
error_reporting(-1);

function arrayGen() {
	$array = [];
	for ($i=0; $i<=20; $i++) {
		$array[$i] = mt_rand(10,99);
	}
	return $array;
}

function arrayShow($array) {
	echo implode($array, ", ") . ".\n";
}


function bubbleSorting($array) {
	$startTime = microtime();
	for ($i=0; $i<count($array)-1; $i++) {
		for ($j=0; $j < count($array)-1; $j++) {
			if ($array[$j] > $array[$j+1]) {
				$a = $array[$j];
				$array[$j] = $array[$j+1];
				$array[$j+1] = $a;
			}
		}
	}
	$time = microtime() - $startTime;
	echo "Сортировка пузырьком выполненна за $time.\n";
	return $array;
}

function newBubbleSorting($array) {
	$startTime = microtime();
	$sorted = FALSE;
	while ($sorted == FALSE) {
		$flag = 0;
		for ($i=0; $i < count($array)-1; $i++) {
			if ($array[$i] > $array[$i+1]) {
				$a = $array[$i];
				$array[$i] = $array[$i+1];
				$array[$i+1] = $a;
				$flag++;
			}
		}
		if ($flag == 0) {
			$sorted = TRUE;
			}
	}
	$time = microtime() - $startTime;
	echo "Сортировка пузырьком 2.0 выполненна за $time.\n";
	return $array;
}

$a = arrayGen();

echo "Сгенерированный массив: ";
arrayShow($a);

$b = bubbleSorting($a);
echo "Сортировка пузырьком: ";
arrayShow($b);

$c = newBubbleSorting($a);
echo "пузырек 2.0: ";
arrayShow ($c);
