typedef int Datatype;
typedef struct
{
Datatype* elem;
int Length;
}SqList;
void ShellSort(SqList L)
{
int gap[3] = { 5,3,1 };
int size = sizeof(gap) / sizeof(gap[0]);
for (int i = 0; i < size; ++i)
ShellInsert(L, gap[i]);
}
void ShellInsert(SqList L, int dk)
{
int tmp = 0;
int j = 0;
for (int i = 1; i <= L.Length - dk; i++) //头到尾前一个
{
tmp = L.elem[i + dk];
for (j = i; j >= 1 && L.elem[j] > tmp; j -= dk)
L.elem[j + dk] = L.elem[j];
if (j != i)
L.elem[j + dk] = tmp;
}
}
08-16
1732
08-11
283
04-04
8921
09-28
547
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交