#include <stdio.h> #include<stdlib.h> void ShellSort(int a[],int n) { int i,j,temp,in,key; in = n; while(in>1) { in=in/3+1; for(i=in;i<n;i++) { key=a[i]; j=i-in; while(j>=0) { if(key<a[j]) { temp=a[j]; a[j]=key; a[j+in]=temp; } j=j-in; } } } } void Print(int a[],int n) { int i; for(i=0;i<n;i++) { printf("%5d",a[i]); } } int main(void) { int *a; int n,i; printf("请输入数组长度n= "); scanf("%d",&n); a=(int*)malloc(n*sizeof(int)); printf("输入数组= "); for(i=0;i<n;i++) { scanf("%d",&a[i]); } ShellSort(a,n); Print(a,n); return 0; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。