希尔排序
Posted brainstorm-yc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。
代码
#include<iostream>
#define N 9
#define ElemType int
/*希尔排序*/
void ShellSort(ElemType A[],int n) {
int i,j,dk;
for (dk = n / 2; dk >= 1; dk = dk / 2)
for (i = dk + 1; i <= n; ++i)
if (A[i]<A[i-dk])
{
A[0] = A[i];
for (j = i - dk; j > 0 && A[0] < A[j]; j -= dk)
A[j + dk] = A[j];
A[j + dk] = A[0];
}
}
/*输出数组*/
void OutPrint(int A[]) {
int i;
for (i = 1; i < N; i++)
{
printf("%d ", A[i]);
}
}
int main() {
int A[N] = { -1,48, 62, 35, 77, 55,14,35,98 };
printf("排序前数组
");
OutPrint(A);
ShellSort(A, N-1);
printf("
排序后数组
");
OutPrint(A);
system("pause");
return 0;
}
以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章