# Bubble Sort in Java

**Bubble sort **isalso known as sinking sort. It is one of the simplest sorting algorithms. In the bubble sort algorithm, the given array is traversed from left to right. In this sorting algorithm, adjacent elements are swapped when they are present in the wrong order. Thus, initially, the elements of bigger values are placed at their correct position, then the elements of smaller values. The same phenomenon happens in a water tank too, bubbles of bigger size come out first, then the bubbles of smaller size. Hence, this sorting algorithm is called bubble sort.

**Algorithm and Pseudo Code**

start BubbleSort(array)

for all elements of the input array

if array[index] > array[index + 1]

swap(array[index], array[index + 1])

terminate if

terminate for

return array

terminate BubbleSort

**Java Program**

The following Java program implements Bubble sort on the basis of pseudo-code written above.

**FileName**: BubbleSortExample.java

public class BubbleSortExample

{

*// method implementing the bubble sort algorithm*

static void bubbleSort(int a[], int start, int end)

{

*// outer loop iterates over elements of the array*

for(int i = start; i < end — 1; i++)

{

*// inner loop does the swapping of elements that are*

*// present in wrong order.*

for(int j = 0; j < end — i — 1; j++)

{

if(a[j] > a[j + 1])

{

*// found that current element*

*// is greater than the next element*

*// hence do the swapping*

int temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

}

}

}

*// main method*

public static void main(String argvs[])

{

*// given input array*

int a[] = {67, 78, 34, 12, 30, 6, 9, 21};

*// calculating size of the array*

int size = a.length;

System.out.println(“The array before sorting is: “);

for(int i = 0; i < size; i++)

{

System.out.print(a[i] + “ “);

}

System.out.println(“\n”);

*// invoking method bubbleSort()*

bubbleSort(a, 0, size);

System.out.println(“The array after sorting is: “);

*// displaying the sorted array*

for(int i = 0; i < size; i++)

{

System.out.print(a[i] + “ “);

}

}

}