Friday, 28 September 2012

SHELL SORT IN C

#include<stdio.h>
#include<math.h>
void shell_sort(int n, int a[n]);
int n;
int main()
{
    int i , j;
    printf("\n enter no of elements \n ");
    scanf("%d",&n);
    int a[n];
    printf("\n enter elements");
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    shell_sort(n,a);


    return 0;
}
void shell_sort(int n,int a[])
{
    int i,j,x,count,gap,temp;
    gap = ceil(n/2);
    while(gap)
    {
        for(i=gap;i<n;i++)
        {
            x = a[i];
            for(j=i-gap;j>=0 ; j=j-gap)
            {
                if(a[j]>x)
                {
                temp = a[j];
                a[j]= a[j+gap];
                a[j+gap]= temp;
                }
                else
                break;
            }
        }
        gap = ceil(gap/2);
    }
     for(i=0;i<n;i++)
    {
        printf("\n %d",a[i]);
    }
}

No comments:

Post a Comment