Thursday, December 18, 2014

LS DRadix Sort Algorithm in c pgm



Implement Postman Sort Algorithm
#include 
#include 
void arrange(int,int);
int array[100], array1[100];
int i, j, temp, max, count, maxdigits = 0, c = 0;
 
void main()
{
    int t1, t2, k, t, n = 1;
    clrscr();
    printf("Enter size of array :");
    scanf("%d", &count);
    printf("Enter elements into array :");
    for (i = 0; i < count; i++)
    {
        scanf("%d", &array[i]);
        array1[i] = array[i];            
    }
    for (i = 0; i < count; i++)
    {
        t = array[i];        
        while(t > 0)
        {
            c++;
            t = t / 10;        
        }
        if (maxdigits < c) 
            maxdigits = c;   
        c = 0;
    }
    while(--maxdigits) 
        n = n * 10;      
 
    for (i = 0; i < count; i++)
    {
        max = array[i] / n;       
        t = i;
        for (j = i + 1; j < count;j++)    
        {
            if (max > (array[j] / n))
            {
                max = array[j] / n;   
                t = j;
            }
        }
        temp = array1[t];
        array1[t] = array1[i];
        array1[i] = temp;
        temp = array[t];
        array[t] = array[i];
        array[i] = temp;
    }
    while (n >= 1)
    {
        for (i = 0; i < count;)
        {
            t1 = array[i] / n;
            for (j = i + 1; t1 == (array[j] / n); j++);
                arrange(i, j);
            i = j;
        }
        n = n / 10;
    }
    printf("\nSorted Array (Postman sort) :");    
    for (i = 0; i < count; i++)
        printf("%d ", array1[i]);
    printf("\n");
}
 
void arrange(int k,int n)
{
    for (i = k; i < n - 1; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (array1[i] > array1[j])
            {
                temp = array1[i];
                array1[i] = array1[j];
                array1[j] = temp;
                temp = (array[i] % 10);
                array[i] = (array[j] % 10);
                array[j] = temp;
            }
        }
    }
}

Output
 
Enter size of array :8
Enter elements into array :170
45
90
75
802
24
2
66
 
Sorted Array (Postman sort) :2 24 45 66 75 90 170 802 
 
Enter size of array :7
Enter elements into array :25
64
185
136
36
3645
45
 
Sorted Array (Postman sort) :25 36 45 64 136 185 3645 
 
Enter size of array :8
Enter elements into array :15
214
166
0836
98
6254
73
642
 
Sorted Array (Postman sort) :15 73 98 166 214 642 836 6254
Sort an Integer Array using LS DRadix Sort Algorithm
#include 
#include  
int min = 0, count = 0, array[100] = {0}, array1[100] = {0};
 
void main()
{
    int k, i, j, temp, t, n;
    clrscr();
    printf("Enter size of array :");
    scanf("%d", &count);
    printf("Enter elements into array :");
    for (i = 0; i < count; i++)
    {
        scanf("%d", &array[i]);
        array1[i] = array[i];
    }
    for (k = 0; k < 3; k++)
    {    
        for (i = 0; i < count; i++)
        {
            min = array[i] % 10;        
            t = i;
            for (j = i + 1; j < count; j++)    
            {
                if (min > (array[j] % 10))
                {
                    min = array[j] % 10; 
                    t = j;
                }
            }
            temp = array1[t];
            array1[t] = array1[i];
            array1[i] = temp;
            temp = array[t];
            array[t] = array[i];
            array[i] = temp;
 
        }
        for (j = 0; j < count; j++)        
                   array[j] = array[j] / 10;
    }
    printf("Sorted Array (lSdradix sort) : ");
    for (i = 0; i < count; i++)
        printf("%d ", array1[i]);
getch();
}

Output
 
Enter size of array :7
Enter elements into array :170    
45 
90
75
802
24
2
Sorted Array (ladradix sort) : 2 24 45 75 90 170 802 
 
Enter size of array :7    
Enter elements into array :22
64
121
78
159
206
348
Sorted Array (ladradix sort) : 22 64 78 159 121 206 348
 
Enter size of array :7
Enter elements into array :985
27
64
129
345
325
091
Sorted Array (ladradix sort) : 27 64 91 129 325 345 985

No comments:

Post a Comment