#include <string.h>
#include <stdio.h>

void shell_sort(char *chars, int c)
{
    register int i, j, space, k;
    char x, a[5];

    a[0] = 9;
    a[1] = 5;
    a[2] = 3;
    a[3] = 2;
    a[4] = 1;

    for (k = 0; k < 5; k++)
    {
        space = a[k];
        for (i = space; i < c; ++i)
        {
            x = chars[i];
            for (j = i - space; (x < chars[j]) && (j >= 0); j = j - space)
            {
                chars[j + space] = chars[j];
            }
            
            chars[j + space] = x;
        }
    }
}

int main()
{
    char string[300];

    printf("Enter a string : ");
    gets(string);
    shell_sort(string, strlen(string));
    printf("The sorted string is: %s\n", string);

    return 0;
}

Output:-
Enter a string : programming
The sorted string is: aggimmnoprr

Post a Comment

If you have any doubts, Please let me know
Thanks!

Previous Post Next Post