# PHP Program - Bubble Sort

Bubble sort is the simplest sorting algorithm. The Bubble sort is based on the idea that every adjacent elements are compared and swapped if found in wrong order.

### Example:

To understand the bubble sort, lets consider an unsorted array *[1, 23, 10, -2]* and discuss each step taken to sort the array in ascending order. In every pass, two adjacent elements are checked and swapped if found in wrong order.

__First Pass__:*(1)* and *(23)* are compared and found in correct order(ascending order in this case). After that *(23)* and *(10)* are compared, since *(23>10)*, hence these numbers are swapped. Then *(23)* and *(-2)* are compared and swapped.

__Second Pass__:*(1)* and *(10)* are compared and found in correct order. Then *(10)* and *(-2)* are compared, since *(10>-2)*, hence these numbers are swapped. After that *(10)* and *(23)* are compared and found in correct order.

__Third Pass__:*(1)* and *(-2)* are compared, since *(1>-2)*, hence these numbers are swapped. After that *(1,10)* and *(10,23)* are checked and found in correct order.

## Implementation of Bubble Sort

<?php // function for bubble sort function bubblesort(&$Array, $n) { $temp; for($i=0; $i<$n; $i++) { for($j=0; $j<$n-$i-1; $j++) { if($Array[$j]>$Array[$j+1]) { $temp = $Array[$j]; $Array[$j] = $Array[$j+1]; $Array[$j+1] = $temp; } } } } // function to print array function PrintArray($Array, $n) { for ($i = 0; $i < $n; $i++) echo $Array[$i]." "; } // test the code $MyArray = array(1, 10, 23, 50, 4, 9, -4); $n = sizeof($MyArray); echo "Original Array\n"; PrintArray($MyArray, $n); bubblesort($MyArray, $n); echo "\nSorted Array\n"; PrintArray($MyArray, $n); ?>

The above code will give the following output:

Original Array 1 10 23 50 4 9 -4 Sorted Array -4 1 4 9 10 23 50

### Time Complexity:

The time complexity of bubble sort is *Θ(N²)* in all cases even if the whole array is sorted because the entire array need to be iterated for every element and it contains two nested loops.