ADVERTISEMENT
ADVERTISEMENT

C program to implement postman sort algorithm

Here, we are going to learn how to implement postman sort algorithm using C program?
Submitted by Nidhi, on August 15, 2021

Problem Solution:

Here, we will create an array of integers with 5 items. Then we will implement postman sort to arrange array elements in ascending order and then print sorted array.

Program:

The source code to implement the postman sort algorithm is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.

// C program to implement postman sort algorithm

#include <stdio.h>

void arrangeItems(int arr[], int arr1[], int k, int n)
{
    int temp = 0;
    int i = 0;
    int j = 0;

    for (i = k; i < n - 1; i++) {
        for (j = i + 1; j < n; j++) {
            if (arr1[i] > arr1[j]) {
                temp = arr1[i];
                arr1[i] = arr1[j];
                arr1[j] = temp;

                temp = (arr[i] % 10);
                arr[i] = (arr[j] % 10);
                arr[j] = temp;
            }
        }
    }
}

int main()
{
    int i = 0;
    int j = 0;
    int c = 0;
    int t = 0;
    int k = 0;
    int n = 1;

    int t1 = 0;
    int t2 = 0;
    int n1 = 0;

    int max = 0;
    int len = 0;
    int maxd = 0;
    int temp = 0;

    int arr[5] = { 53, 36, 46, 22, 19 };
    int arr1[5];

    len = sizeof(arr) / sizeof(arr[0]);

    for (i = 0; i < len; i++)
        arr1[i] = arr[i];

    for (i = 0; i < len; i++) {
        t = arr[i];
        while (t > 0) {
            c++;
            t = t / 10;
        }
        if (maxd < c)
            maxd = c;
        c = 0;
    }
    while (--maxd)
        n = n * 10;

    for (i = 0; i < len; i++) {
        max = arr[i] / n;
        t = i;

        for (j = i + 1; j < len; j++) {
            if (max > (arr[j] / n)) {
                max = arr[j] / n;
                t = j;
            }
        }

        temp = arr1[t];
        arr1[t] = arr1[i];
        arr1[i] = temp;

        temp = arr[t];
        arr[t] = arr[i];
        arr[i] = temp;
    }
    while (n >= 1) {
        for (i = 0; i < len;) {
            t1 = arr[i] / n;
            for (j = i + 1; t1 == (arr[j] / n); j++)
                ;
            arrangeItems(arr, arr1, i, j);
            i = j;
        }
        n = n / 10;
    }

    printf("Sorted Array:\n");
    for (i = 0; i < len; i++)
        printf("%d ", arr1[i]);
    printf("\n");

    return 0;
}

Output:

Sorted Array:
19 22 36 46 53

Explanation:

In the above program, we created two functions arrangeItems() and main(). The arrangeItems() is used to arrange array items of specified arrays.

In the main() function, we created an array of integers arr with 5 elements. Then we sorted the elements of the array using the postman sort algorithm and printed the sorted array.

ADVERTISEMENT
ADVERTISEMENT


Comments and Discussions!



ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.