# 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 bubble sort 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);
?>


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 $\mathcal{O}(N^2)$ 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.