/***************************************************************
File Name: shell_sort.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月30日 星期二 09时02分47秒
**************************************************************/
#include <stdio.h>
void shell_sort(int a[], int len)
{
int i, j, gap, tmp;
for (gap = len / 2; gap > 0; gap /= 2)
{
for (i = gap; i < len; i++)
{
tmp = a[i];
for (j = i - gap; j >= 0 && tmp < a[j]; j -= gap)
{
a[j + gap] = a[j];
}
a[j + gap] = tmp;
}
}
}
int main()
{
int data[] = {1, 5, 41, 23, 65, 95, 12, 32};
int i;
int length = sizeof(data) / sizeof(data[0]);
shell_sort(data, length);
for (i = 0; i < length; i++)
{
printf("%d ", data[i]);
}
printf("\n");
return 0;
}