您的位置:首页 > 运维架构 > Shell

希尔排序(Shell Sort)

2016-12-14 20:35 399 查看








#include<cstdio>
#include<algorithm>
using namespace std;
#define MAXN 100000
int A[MAXN];
int N;
void Shell_sort(){
int i;
int temp;
for(int D = N / 2; D > 0; D /= 2){  //希尔排序
for(int P = D; P <= N ; P++){   //插入排序
temp = A[P];
for(i = P; i > D && A[i - D] > temp; i -= D)
A[i] = A[i - D];
A[i] = temp;
}
}

for(int i = 1 ; i <= N; ++i){
if(i == 1)
printf("%d", A[i]);
else
printf(" %d", A[i]);
}

}

int main(void){
scanf("%d", &N);
for(int i = 1;i <= N; ++i)
scanf("%d", &A[i]);
Shell_sort();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  希尔排序