#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#define N 10
int E[N] = { 213,111,222,77,400,300,987,1024,632,555 };
void ShellSort(int R[], int n)
{
int i, j, d;
int tmp;
d = n / 2; //增量置初值
while (d > 0)
{
for (i = d; i < n; i++)
{
tmp = R[i]; //对所有相隔d位置的记录组采用直接插入排序
j = i - d;
while (j >= 0 && tmp< R[j])
{
R[j + d] = R[j];
j = j - d;
}
R[j + d] = tmp;
}
d = d / 2; //减小增量
}
}
void main()
{
int i, a[N];
a[N] = E[N];
printf("2019114402费骁谋\n");
printf("初始数据序列为:\n");
for (i = 0; i < N; i++)
printf("%5d", E[i]);
ShellSort(E, N);
printf("\n希尔排序后数据序列为:\n");
for (i = 0; i < N; i++)
printf("%5d", E[i]);
_getch();
}