#define MAX_SIZE 10
typedef struct
{
int m[MAX_SIZE ];
int length;
} SqList;
//用排序,鐵定跑不了這個swap函數,最好自己寫一個
void swap(SqList *q, int i, int j);
void swap(SqList *q, int i, int j)
{
int temp = q->m[i];
q->m[i] = q->m[j];
q->m[j] = temp;
}
void shellsort(SqList *L)
{
int i, j, incream;
incream = L->length;
do
{
incream = incream / 3 + 1; //增量序列
for (i = incream + 1; i <= L->length; i++)
{
if (L->m[i] < L->m[i - incream])
{
L->m[0] = L->m[i];
for (j = i - incream; j > 0 && L->m[j] > L->m[0]; j -= incream)
{
L->m[j + incream] = L->m[j];//記錄後移, 查找插入位置
}
L->m[j + incream] = L->m[0]; //插入
}
}
} while (incream > 1);
}