In C programming language, bubble sort is the simplest sorting technique and is also called as an exchange sort.
Procedure for bubble sort
Compare the first element with the remaining elements in the list and exchange(swap) them, if they are not in order.
Repeat the same for other elements in the list until all the elements gets sorted.
Algorithm
Given below is an algorithm to sort a given list of numbers in an ascending order by using the bubble sort technique −
Step 1 − Start
Step 2 − Take list(array), num
Step 3 − readlist(list,num)
Step 4 − printlist(list,num)
Step 5 − bub_sort(list,num)
Step 6 − printlist(list,num)
readlist (list, num)
Step 7 − stop
1. for j = 0 to num 2. read list[j].
printlist(list,num)
1. for j =0 to num 2. write list[j].
bub_sort(list,num)
1. for i = 0 to num 2. for j =0 to (num – i) 3. if( list[j] > list[j+1]) 4. swapList( address of list[j], address of list[j+1])
swapList( address of list[j], address of list[j+1])
1. temp = value at list[j] 2. value at list[j] = value at list[j+1] 3. value at list[j+1] = temp
Example
Following is the C program to sort a given list of numbers in an ascending order by using the bubble sort technique −
#include <stdio.h> #define MAX 10 void swapList(int *m,int *n){ int temp; temp = *m; *m = *n; *n = temp; } /* Function for Bubble Sort */ void bub_sort(int list[], int n){ int i,j; for(i=0;i<(n-1);i++) for(j=0;j<(n-(i+1));j++) if(list[j] > list[j+1]) swapList(&list[j],&list[j+1]); } void readlist(int list[],int n){ int j; printf("\nEnter the elements: \n"); for(j=0;j<n;j++) scanf("%d",&list[j]); } /* Showing the contents of the list */ void printlist(int list[],int n){ int j; for(j=0;j<n;j++) printf("%d\t",list[j]); } void main(){ int list[MAX], num; printf(" Enter the number of elements \n"); scanf("%d",&num); readlist(list,num); printf("\n\nElements in the list before sorting are:\n"); printlist(list,num); bub_sort(list,num); printf("\n\nElements in the list after sorting are:\n"); printlist(list,num); }
Output
When the above program is executed, it produces the following result −
Enter the number of elements 10 Enter the elements: 11 23 45 1 3 6 35 69 10 22 Elements in the list before sorting are: 11 23 45 1 3 6 35 69 10 22 Elements in the list after sorting are: 1 3 6 10 11 22 23 35 45 69