代码如下:#include<iostream>#define MAX 100using namespace std;void insertsort(int input[],int n,int incr){ int temp,j;for(int i=incr;i<n;i+=incr) { for(j=i;j>=incr;j-=incr) { if(input[j]& 展开
代码如下:#include<iostream>#define MAX 100using namespace std;void insertsort(int input[],int n,int incr){ int temp,j;for(int i=incr;i<n;i+=incr) { for(j=i;j>=incr;j-=incr) { if(input[j]>input[j-incr]) break;temp=input[j];input[j]=input[j-incr];input[j-incr]=temp;} }}void main(){ int size=0;int input[MAX];int i,j,k;while(size<MAX && cin>>input[size]) size++;for(i=size/2;i>=2;i/=2) { for(j=0;j<i;j++) insertsort(&input[j],size-j,i);for(k=0;k<size;k++) cout<<input[k]<<"";cout<<endl;} insertsort(input,size,1);for(i=0;i<size;i++) cout<<input[i]<<"";cout<<endl;cout<<"结束排序!"<<endl;cout<<"当前顺序为:"<<endl;for(i=0;i<size;i++) cout<<input[i]<<"";cout<<endl;} 收起