Write a Function That Performs a Descending Order Bubble Sort on an Array of 10 Characters C

Bubble sort

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

  1. 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].
  2. 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.
  3. 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:
Bubble sort C program output

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

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel