Write a Function That Performs a Descending Order Bubble Sort on an Array of 10 Characters C
Bubble sort in C to arrange numbers in ascending order; you can modify it for descending order and can also sort strings. The bubble sort algorithm isn't efficient as its both average-case as well as worst-case complexity are O(n2).
Bubble sort algorithm
- Start at index zero, compare the element with the next one (a[0] & a[1] (a is the name of the array)), and swap if a[0] > a[1]. Now compare a[1] & a[2] and swap if a[1] > a[2]. Repeat this process until the end of the array. After doing this, the largest element is present at the end. This whole thing is known as a pass. In the first pass, we process array elements from [0,n-1].
- Repeat step one but process array elements [0, n-2] because the last one, i.e., a[n-1], is present at its correct position. After this step, the largest two elements are present at the end.
- Repeat this process n-1 times.
Bubble sort program in C
/* Bubble sort code */
#include <stdio.h>
int main( )
{
int array[ 100 ] , n, c, d, swap;
printf ( "Enter number of elements\n" ) ;
scanf ( "%d" , &n) ;
printf ( "Enter %d integers\n" , n) ;
for (c = 0 ; c < n; c++ )
scanf ( "%d" , &array[c] ) ;
for (c = 0 ; c < n - 1 ; c++ )
{
for (d = 0 ; d < n - c - 1 ; d++ )
{
if (array[d] > array[d+ 1 ] ) /* For decreasing order use '<' instead of '>' */
{
swap = array[d] ;
array[d] = array[d+ 1 ] ;
array[d+ 1 ] = swap;
}
}
}
printf ( "Sorted list in ascending order:\n" ) ;
for (c = 0 ; c < n; c++ )
printf ( "%d\n" , array[c] ) ;
return 0 ;
}
Output of program:
Download Bubble sort program.
Other sorting algorithms:
Selection sort in C
Insertion sort in C
There are many fast sorting algorithms like Quicksort, heap-sort, and others. Sorting simplifies problem-solving in computer programming.
Bubble sort program in C language using function
#include <stdio.h>
void bubble_sort( long [ ] , long ) ;
int main( )
{
long array[ 100 ] , n, c;
printf ( "Enter number of elements\n" ) ;
scanf ( "%ld" , &n) ;
printf ( "Enter %ld integers\n" , n) ;
for (c = 0 ; c < n; c++ )
scanf ( "%ld" , &array[c] ) ;
bubble_sort(array, n) ;
printf ( "Sorted list in ascending order:\n" ) ;
for (c = 0 ; c < n; c++ )
printf ( "%ld\n" , array[c] ) ;
return 0 ;
}
void bubble_sort( long list[ ] , long n)
{
long c, d, t;
for (c = 0 ; c < n - 1 ; c++ ) {
for (d = 0 ; d < n - c - 1 ; d++ ) {
if (list[d] > list[d+ 1 ] ) {
/* Swapping */
t = list[d] ;
list[d] = list[d+ 1 ] ;
list[d+ 1 ] = t;
}
}
}
}
We can use the Bubble Sort algorithm to check if an array is sorted or not. If no swapping takes place, then the array is sorted. We can improve its best-case complexity to O(n).
#include <stdio.h>
int is_Array_Sorted( int [ ] , int ) ;
int main( )
{
int a[ 100 ] , n, c;
printf ( "Enter number of elements\n" ) ;
scanf ( "%d" , &n) ;
printf ( "Enter %d integers\n" , n) ;
for (c = 0 ; c < n; c++ )
scanf ( "%d" , &a[c] ) ;
if (is_Array_Sorted(a, n) )
printf ( "The array is sorted.\n" ) ;
else
printf ( "The array isn't sorted.\n" ) ;
return 0 ;
}
int is_Array_Sorted( int a[ ] , int n) {
int c, d, sorted = 1 , t;
for (c = 0 ; c < n - 1 ; c++ ) {
for (d = 0 ; d < n - c - 1 ; d++ ) {
if (a[d] > a[d+ 1 ] ) {
t = a[d] ;
a[d] = a[d+ 1 ] ;
a[d+ 1 ] = t;
return 0 ;
}
}
}
return 1 ;
}
Write a Function That Performs a Descending Order Bubble Sort on an Array of 10 Characters C
Source: https://www.programmingsimplified.com/c/source-code/c-program-bubble-sort
0 Response to "Write a Function That Performs a Descending Order Bubble Sort on an Array of 10 Characters C"
Post a Comment