C Program to sort an array using Shell Sort
Program
#include<stdio.h>
void main()
{
int a[10];
int i, j, k, temp, n;
printf("Enter the number of elements:\t");
scanf("%d", &n);
printf("Enter %d elements for Shell Sort:\n", n);
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for(i = n / 2; i > 0; i = i / 2)
{
for(j = i; j < n; j++)
{
for(k = j - i; k >= 0; k = k - i)
{
if(a[k+i] >= a[k])
break;
else
{
temp = a[k];
a[k] = a[k+i];
a[k+i] = temp;
}
}
}
}
printf("Sorted elements:\n");
for(i = 0; i < n; i++)
printf("%d\n", a[i]);
}
Output
Enter the number of elements: 6
Enter 6 elements for Shell Sort:
987
324
87
2
945
12
Sorted elements:
2
12
87
324
945
987