Introduction
Bubble Sort is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. This process is repeated until the list is sorted. This guide will show you how to write a C program to sort an array using the Bubble Sort algorithm.
Problem Statement
Create a C program that:
- Takes the size of the array as input from the user.
- Takes the elements of the array as input.
- Sorts the array using the Bubble Sort algorithm.
- Displays the sorted array.
Example:
- Input: Array size = 5, Elements = [64, 34, 25, 12, 22]
- Output: Sorted array = [12, 22, 25, 34, 64]
Solution Steps
- Include the Standard Input-Output Library: Use
#include <stdio.h>
to include the standard input-output library, which is necessary for usingprintf
andscanf
functions. - Write the Main Function: Define the
main
function, which is the entry point of every C program. - Declare Variables: Declare variables to store the array size, the array elements, and temporary variables for swapping.
- Input the Array Size: Use
scanf
to take input from the user for the size of the array. - Input the Array Elements: Use a loop to take input from the user for the elements of the array.
- Implement Bubble Sort: Use nested loops to perform the Bubble Sort algorithm on the array.
- Display the Sorted Array: Use
printf
to display the sorted array.
C Program
#include <stdio.h> /** * C Program to Sort an Array Using Bubble Sort * Author: https://www.javaguides.net/ */ int main() { // Step 1: Declare variables to hold the array size, elements, and a temporary variable for swapping int n, temp; // Step 2: Prompt the user to enter the size of the array printf("Enter the number of elements in the array: "); scanf("%d", &n); // Step 3: Declare an array to hold the elements int arr[n]; // Step 4: Input the array elements printf("Enter %d elements:\n", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } // Step 5: Implement Bubble Sort for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { // Swap the elements temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } // Step 6: Display the sorted array printf("Sorted array: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; // Step 7: Return 0 to indicate successful execution }
Explanation
Step 1: Declare Variables
- The variable
n
is declared to store the size of the array.temp
is used as a temporary variable for swapping elements during sorting.
Step 2: Input the Array Size
- The program prompts the user to enter the size of the array using
printf
. Thescanf
function then reads the input and stores it in the variablen
.
Step 3: Declare the Array
- The program declares an array
arr
of sizen
to hold the elements provided by the user.
Step 4: Input the Array Elements
- The program uses a
for
loop to take input for each element of the array. The loop iterates from 0 ton-1
, reading the elements usingscanf
.
Step 5: Implement Bubble Sort
- The program uses two nested
for
loops to perform the Bubble Sort:- The outer loop iterates through the entire array
n-1
times. - The inner loop compares each element with its adjacent element and swaps them if they are in the wrong order. The largest element "bubbles" up to its correct position at the end of each pass.
- The outer loop iterates through the entire array
Step 6: Display the Sorted Array
- After the sorting process is complete, the program displays the sorted array using a
for
loop and theprintf
function.
Step 7: Return 0
- The
return 0;
statement indicates that the program executed successfully.
Output Example
Example:
Enter the number of elements in the array: 5 Enter 5 elements: 64 34 25 12 22 Sorted array: 12 22 25 34 64
Another Example:
Enter the number of elements in the array: 4 Enter 4 elements: 3 2 4 1 Sorted array: 1 2 3 4
Conclusion
This C program demonstrates how to sort an array using the Bubble Sort algorithm. It covers basic concepts such as arrays, loops, and conditional statements, making it a useful example for beginners learning C programming and sorting algorithms.