In this tutorial, you will learn how bubble sort works. This c program uses bubble sort to arrange the elements in the proper order. We can call the bubble sort a comparison sort as each pass checks the pair of adjacent elements and makes it in proper order by swapping the components. This process repeats until all the elements are in the appropriate order.

For example, '5, 1, 6, 7, 2' are the numbers to be sorted; in the first pass, it sorts '5' and '1' and swaps each other. The numbers are'1,5,6,7,2'. It checks '5' and '6' in order, so it checks '6' and '7', and at the end of the first pass, the element '5' will be in the correct position.

Now it takes the second pass. The best case in bubble sort is on the sorted list. The worst-case complexity of bubble sort is **o(n**2)**, where '**n**' is the number of elements in the list.

In this c program, after we are getting the user input list, we add the list into an array. We use two nested '`for loops`

' to compare each element with the adjacent elements in the list. If the second element is less than the first, we have to interchange the elements using the swap method with a **temp** variable.

We are doing that for each element until the array sorts entirely. We take each element from the outer loop and compare that with all other elements in the inner loop to get that element in the right position. In the first pass, we take the next element from the outer loop in the second pass, and so on. Finally, we print the **sorted list**.

**STEP 1:** Include the Header Libraries into the C program to use the built-in functions in that library.

**STEP 2:** Initialize the variables used in the program and the Array to store the values.

**STEP 3:** Accept the number of elements needed from the user using `printf`

and `scanf`

functions. And store that in a variable.

**STEP 4:** Using `for loop`

accepts the elements into the Array from the user using a `scanf`

.

**STEP 5:** Using the `for loop`

, print the Array using `printf`

.

**STEP 6:** Open the nested Outer For loop from zero to the number of terms in Array to check every Element.

**STEP 7:** Open the Inner For loop from zero to the **number of terms - the number in the outer loop - 1** to check each Element from the outer loop with the Array non-sorted Elements.

**STEP 8:** Check the comparing Element is greater than the compared Element using **'**`if`

**'** condition.

**STEP 9:** if so, using the `Swap`

technique using temporary variable `Swap`

the elements.

**STEP 10:** print the Sorted Array using `printf`

and for loop in C programming language.

` ````
#include <stdio.h>
#define MAXSIZE 10
void main() {
int array[MAXSIZE]; /* declares array and variables */
int i, j, N, temp;
printf("Enter the value of N\n");
scanf("%d", & N);
printf("Enter the elements one by one\n"); /* accept and enter the list elements into a array */
for (i = 0; i < N; i++) {
scanf("%d", & array[i]);
}
printf("Input array is...\n");
for (i = 0; i < N; i++) {
printf("%d\n", array[i]); /* prints the sorted list */
}
for (i = 0 ; i < N - 1; i++)
{
for (j = 0 ; j < N - i - 1; j++)
{
if (array[j] > array[j+1]) /* For decreasing order use '<' instead of '>' */
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
printf("Sorted array is...\n");
for (i = 0; i < N; i++) {
printf("%d\n", array[i]); /* prints the sorted list */
}
} /* End of main*/
```

Enter the value of N 5 Enter the elements one by one 390 234 111 876 345 Input array is 390 234 111 876 345 Sorted array is... 111 234 345 390 876