Wednesday , January 17 2018
Home / c-program / C Program – Bubble Sort Program in C

C Program – Bubble Sort Program in C

In this tutorials, I am going to show how to implement Bubble Sort Program in C Language.

Bubble Sort Program in C:

As we all know that Bubble Sort is a most commonly used and easiest sorting algorithm among all sorting techniques. Bubble sort compares each element with its adjacent element and exchange (swap) them if they are not in order.

Input : 8 4 1 6 5

Output :

PASS 1 – :

Elements are in phase – 1 : 8 4 1 6 5
Comparing 8 and 4 : Since 8 > 4, Exchange (Swap) them
Elements are in phase – 1 : 4 8 1 6 5
Comparing 8 and 1 : Since 8 > 1, Exchange (Swap) them
Elements are in phase – 1 : 4 1 8 6 5
Comparing 8 and 6 : Since 8 > 6, Exchange (Swap) them
Elements are in phase – 1 : 4 1 6 8 5
Comparing 8 and 5 : Since 8 > 5, Exchange (Swap) them
After Pass 1 elements are :
4 1 6 5 ___8

PASS 2 – :

Elements are in phase – 2 : 4 1 6 5 ___8
Comparing 4 and 1 : Since 4 > 1, Exchange (Swap) them
Elements are in phase – 2 : 1 4 6 5 ___8
Comparing 4 and 6 : Since 4 < 6, No Need to exchange
Elements are in phase – 2 : 1 4 6 5 ___8
Comparing 6 and 5 : Since 6 > 5, Exchange (Swap) them
After Pass 2 elements are :
1 4 5 ___6 8

PASS 3 – :

Elements are in phase – 3 : 1 4 5 ___6 8
Comparing 1 and 4 : Since 1 < 4, No Need to exchange
Elements are in phase – 3 : 1 4 5 ___6 8
Comparing 4 and 5 : Since 4 < 5, No Need to exchange
No exchanges in this pass, so the list is sorted

Sorted list is :
1 4 5 6 8

Bubble Sort Program :

 
#include <stdio.h> 
#define MAX_SIZE 100 
 
int main() 
{ 
    int array[MAX_SIZE],i,j,k,temp,n,xchanges; 
     
    printf("Enter the number of elements : "); 
    scanf("%d",&n); 
     
    for(i=0; i<n; i++) 
    { 
        printf("Enter element %d : ",i+1); 
        scanf("%d",&array[i]); 
    } 
 
    printf("Unsorted Elemets :\n"); 
    for(i=0; i<n; i++) 
        printf("%d ", array[i]); 
     printf("\n"); 
 
    /*Bubble sort logic begins here !*/ 
    for(i=0; i<n-1; i++) 
    { 
        printf("PASS %d - : \n\n",i+1); 
        xchanges=0; 
        for(j=0; j<n-1-i; j++) 
        { 
            printf("Elements are in phase - %d : ",i+1); 
            for(k=0; k<n; k++) 
            { 
                printf("%d ",array[k]); 
                if(k==n-i-1 && k!=n-1) 
                    printf("___"); 
            } 
            printf("\n"); 
            printf("Comparing %d and %d  :  ", array[j], array[j+1]); 
                         
            if( array[j] > array[j+1] ) 
            { 
                printf("Since %d > %d, Exchange (Swap) them\n",array[j],array[j+1]); 
                temp = array[j]; 
                array[j] = array[j+1]; 
                array[j+1] = temp; 
                xchanges++; 
            } 
            else  
                printf("Since %d < %d, No Need to exchange\n",array[j], array[j+1]); 
        } 
 
        if(xchanges==0) /*If list is sorted*/ 
        { 
            printf("No exchanges in this pass, so the list is sorted\n\n"); 
            break; 
        } 
         
        printf("After Pass %d elements are :  \n",i+1); 
        for(k=0; k<n; k++) 
        { 
            printf("%d ", array[k]); 
                if(k==n-i-2) 
                    printf("___"); 
        } 
        printf("\n"); 
    } 
 
    printf("Sorted list is :\n"); 
    for (i = 0; i < n; i++) 
        printf("%d ", array[i]); 
    printf("\n\n"); 
     
}

Output :

Enter the number of elements : 6
Enter element 1 : 9
Enter element 2 : 7
Enter element 3 : 5
Enter element 4 : 4
Enter element 5 : 3
Enter element 6 : 2
Unsorted Elements : 9 7 5 4 3 2

PASS 1 – :

Elements are in phase – 1 : 9 7 5 4 3 2
Comparing 9 and 7  :  Since 9 > 7, Exchange (Swap) them
Elements are in phase – 1 : 7 9 5 4 3 2
Comparing 9 and 5  :  Since 9 > 5, Exchange (Swap) them
Elements are in phase – 1 : 7 5 9 4 3 2
Comparing 9 and 4  :  Since 9 > 4, Exchange (Swap) them
Elements are in phase – 1 : 7 5 4 9 3 2
Comparing 9 and 3  :  Since 9 > 3, Exchange (Swap) them
Elements are in phase – 1 : 7 5 4 3 9 2
Comparing 9 and 2  :  Since 9 > 2, Exchange (Swap) them
After Pass 1 elements are :
7 5 4 3 2 ___9

PASS 2 – :

Elements are in phase – 2 : 7 5 4 3 2 ___9
Comparing 7 and 5  :  Since 7 > 5, Exchange (Swap) them
Elements are in phase – 2 : 5 7 4 3 2 ___9
Comparing 7 and 4  :  Since 7 > 4, Exchange (Swap) them
Elements are in phase – 2 : 5 4 7 3 2 ___9
Comparing 7 and 3  :  Since 7 > 3, Exchange (Swap) them
Elements are in phase – 2 : 5 4 3 7 2 ___9
Comparing 7 and 2  :  Since 7 > 2, Exchange (Swap) them
After Pass 2 elements are :
5 4 3 2 ___7 9

PASS 3 – :

Elements are in phase – 3 : 5 4 3 2 ___7 9
Comparing 5 and 4  :  Since 5 > 4, Exchange (Swap) them
Elements are in phase – 3 : 4 5 3 2 ___7 9
Comparing 5 and 3  :  Since 5 > 3, Exchange (Swap) them
Elements are in phase – 3 : 4 3 5 2 ___7 9
Comparing 5 and 2  :  Since 5 > 2, Exchange (Swap) them
After Pass 3 elements are :
4 3 2 ___5 7 9

PASS 4 – :

Elements are in phase – 4 : 4 3 2 ___5 7 9
Comparing 4 and 3  :  Since 4 > 3, Exchange (Swap) them
Elements are in phase – 4 : 3 4 2 ___5 7 9
Comparing 4 and 2  :  Since 4 > 2, Exchange (Swap) them
After Pass 4 elements are :
3 2 ___4 5 7 9
PASS 5 – :

Elements are in phase – 5 : 3 2 ___4 5 7 9
Comparing 3 and 2  :  Since 3 > 2, Exchange (Swap) them
After Pass 5 elements are :
2 ___3 4 5 7 9
Sorted list is :
2 3 4 5 7 9

Happy Learning 🙂

About chandrashekhar

Hi
Folks,
you have reach this so far, that shows you like what you are learning. Then why don’t you support us to improve for bettor tutorials by leaving your valuable comments and why not you keep in touch with us for latest updates on your favorite blog @ facebook , twitter , Or Google+ ,

Recommended

C Program to add elements of an array

How to add elements in an array using C Program. Add elements of an Array …

Leave a Reply

Your email address will not be published. Required fields are marked *