Bubble Sort

Bubble sort is very simple sorting technique, in this each element compare with every other element in the list. This is also called sinking sort. It continuously compares the element with the adjacent item and swap if the element are in wrong order. If the element at lower index is greater than the element at the higher index, then the two elements are interchanged as the element is placed before the bigger one.

This process is continue working till the largest element move to the highest index position.


Bubble sort example

Let us an array has the following element.

A[] = {10, 43, 23, 56, 16}

These are the bubble sorting technique.

bubble sort

Pass 1

Compare A[0] and A[1], since A[0] < A[1] then no interchange.

bubble sort

Compare A[1] and A[2], since A[1] > A[2] then interchange.

bubble sort

Compare A[2] and A[3], since A[2] < A[3] then no interchange.

bubble sort

Compare A[3] and A[4], since A[3] > A[4] then interchange.

bubble sort
bubble sort

Pass 2

Compare A[0] and A[1], since A[0] < A[1] then no interchange.

bubble sort

Compare A[1] and A[2], since A[1] < A[2] then no interchange.

bubble sort

Compare A[2] and A[3], since A[2] > A[3] then interchange.

bubble sort
bubble sort

Compare A[3] and A[4], since A[3] < A[4] then no interchange.

bubble sort
bubble sort

Bubble Sorting Algorithm

STEP 1: Repeat Step 2 For 1=0 to N-1
STEP 2: Repeat for J = 0 to N - I
STEP 3: IF A[J] > A[J+1]
		SWAP A[J] and A[J+1]
	[END of INNER LOOP]
[END of OUTER LOOP]
STEP 4: EXIT

Complexity of Bubble sort

Suppose n is the number of element in an array.

f(n) = (n-1)+(n-2)+(n-3)+.....+3+2+1
f(n) = n(n-1)/2
f(n) = n2/2 + O(n) 
     = O(n2)




Bubble Sort Program in C

#include<stdio.h>

int main(){

	int count, temp, i, j, array[100];

	printf("Enter the number of elements : ");
	scanf("%d",&count);

	printf("Enter %d numbers : ",count);

	for(i=0;i<count;i++)
	scanf("%d",&array[i]);

	for(i=count-2;i>=0;i--){
	  for(j=0;j<=i;j++){
		if(array[j]>array[j+1]){
		   temp=array[j];
		   array[j]=array[j+1];
		   array[j+1]=temp;
		}
	  }
	}

	printf("Sorted list : ");
	for(i=0;i<count;i++)
		printf(" %d",array[i]);

	return 0;
}

Output of the above program

Enter the number of elements : 5
Enter 5 numbers : 34
21
67
54
89
Sorted list :  21 34 54 67 89







Read more articles


General Knowledge



Learn Popular Language