How to write a Program to Sort Array using Bubble sort in C with a practical example?.
C Program for Bubble Sort using For Loop
This program for bubble sort uses the Nested For Loop to sort the One Dimensional Array elements in ascending order.
#include <stdio.h> int main() { int a[100], number, i, j, temp; printf("\n Please Enter the total Number of Elements : "); scanf("%d", &number); printf("\n Please Enter the Array Elements : "); for(i = 0; i < number; i++) scanf("%d", &a[i]); for(i = 0; i < number - 1; i++) { for(j = 0; j < number - i - 1; j++) { if(a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } printf("\n List Sorted in Ascending Order : "); for(i = 0; i < number; i++) { printf(" %d \t", a[i]); } printf("\n"); return 0; }

Here, For Loop will make sure that the number is between 0 and maximum size value of One Dimensional Array.
First For Loop – First Iteration: for(i = 0; 0 < 4; 0++)
The condition is True so that it will enter into second for loop
Second For Loop – First Iteration: for(j = 0; 0 < 5-0-1; 0++)
Condition inside the For Loop is True. So, the compiler will enter into the If Statement
if(a[0] > a[1]) => if(10 > -14) – It means Condition is True
temp = 10
a[j] = a[j + 1] => a[0] = a[1] => a[0] = -14
a[j + 1] = temp => a[1] = 10
Now the array will be -14 10 25 6 25. Next, j will be increment by 1.
Second For Loop – Second Iteration: for(j = 1; 1 < 5 – 0 – 1; 1++)
For Loop condition is True, and the compiler will enter into If Statement
if(10 > 25) – It means condition is False. Do the same for the remaining C Programming Iterations
Bubble Sort using While Loop
This program of bubble sort in c is the same as above. However, we replaced the for loop with While Loop to organize array elements using bubble sort
#include <stdio.h> int main() { int a[100], number, i, j, temp; printf("\n Please Enter the total Number of Elements : "); scanf("%d", &number); printf("\n Please Enter the Array Elements : "); for(i = 0; i < number; i++) scanf("%d", &a[i]); i = 0; while(i < number - 1) { j = 0; while(j < number - i - 1) { if(a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } j++; } i++; } printf("\n List in Ascending Order : "); for(i = 0; i < number; i++) printf(" %d \t", a[i]); printf("\n"); return 0; }
Please Enter the total Number of Elements : 6
Please Enter the Array Elements : 10 20 -30 20 5 15
List in Ascending Order : -30 5 10 15 20 20
C Bubble Sort Program using Functions
This bubble sort program is the same as the first example. Still, we separated the logic to organize array elements by bubble sort using Functions.
#include <stdio.h> void bubFunc(int a[], int number) { int i, j, temp; for(i = 0; i < number - 1; i++) { for(j = 0; j < number - i - 1; j++) { if(a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } int main() { int arr[100], size, i; printf("\n Please Enter the total Elements : "); scanf("%d", &size); printf("\n Please Enter the Array Elements : "); for(i = 0; i < size; i++) scanf("%d", &arr[i]); bubFunc(arr, size); printf("\n List in Ascending Order : "); for(i = 0; i < size; i++) { printf(" %d \t", arr[i]); } printf("\n"); return 0; }
Please Enter the total Elements : 4
Please Enter the Array Elements : 3 -2 1 0
List in Ascending Order : -2 0 1 3
Bubble Sort in C using Pointers
In this bubble sort program example, we created an extra function and used Pointers to swap two numbers. Remaining is same as above
#include <stdio.h> void Swap(int *x, int *y) { int Temp; Temp = *x; *x = *y; *y = Temp; } void bubFunc(int a[], int number) { int i, j, temp; for(i = 0; i < number - 1; i++) { for(j = 0; j < number - i - 1; j++) { if(a[j] > a[j + 1]) { Swap(&a[j], &a[j + 1]); } } } } int main() { int arr[100], size, i; printf("\n Please Enter the total Elements : "); scanf("%d", &size); printf("\n Please Enter the Array Elements : "); for(i = 0; i < size; i++) scanf("%d", &arr[i]); bubFunc(arr, size); printf("\n Array in Ascending Order : "); for(i = 0; i < size; i++) { printf(" %d \t", arr[i]); } printf("\n"); return 0; }
Please Enter the total Elements : 6
Please Enter the Array Elements : 10 20 30 -12 20 5
Array in Ascending Order : -12 5 10 20 20 30