/**
*shell's sort
**/
#include<stdio.h>
void shellSort(int array[],int n)
{
int gap = n,flag = 0;
int tmp,j = 0;
while(gap > 1)
{
gap /= 2;
do
{
flag = 0;
for(int i = 0;i < n - gap;i++)
{
j = i + gap;
if(array[i] > array[j])
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
flag = 1;
}
}
}while(flag);
}
}
int main()
{
int arr[10] = {2,5,6,3,7,8,0,9,12,1};
printf("before sorted:\n");
for(int i = 0;i != 10;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
shellSort(arr,10);
printf("after sorted:\n");
for(int j = 0;j != 10;j++)
{
printf("%d ",arr[j]);
}
return 0;
}