C Code Snippets 12 - Unique Bubble Sorting



Hello everyone, today's C code snippet is about bubble sorting. Bubble sort is the easiest way to sort a collection of numbers. It works by sequentially going through the array and comparing two consecutive values at a time, swapping them if necessary. Then, the process is repeated until no swaps are required.


Additionally, our code detects the same values in an array and removes the repeated values. For example, 

{2,4,6,2,5,2,3,1} will be sorted as {1,2,3,4,5,6}.

/**
* Author : Berk Soysal
*/

#include <stdio.h>
#include <stdlib.h>
#define N 10

void sort(int *a, int n)
{
    int k, j, temp;

    for(k=0; k<n-1; k++)
        for(j=0; j<n-1; j++)
    // If the previous value is larger, swap.
            if( a[j]>a[j+1] )
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
    // If there are any equal values, keep only one nonzero
            else if(a[j]==a[j+1])
            {
                a[j]=0;
            }
}

int main()
{
    int i, x[N] = {42,12,53,86,27,70,64,70,45,23};

    // Print the input
    printf("Input : ");
    for(i=0; i<N; i++)
        printf("%5d",x[i]);

    printf("\n");

    // Call the sort function
    sort(x, N);

    // Print the sorted array
    printf("Sorted: ");
    for(i=0; i<N; i++)
        if(x[i]!=0)
            printf("%5d",x[i]);

    printf("\n");

    return 0;
}


Output:


Please leave a comment if you have any questions or comments. 

Keywords: CCode Snippets
Author:

Software Developer, Codemio Admin

Disqus Comments Loading..