1035. 插入与归并(25)

#include
#include
using namespace std;
int main()
{
int n,i,h,j,t,m=0,q,z=1,k;
int a[1000],b[1000],c[1000];
scanf("%d",&n);
for(i=0;i scanf("%d",&c[i]);
a[i]=c[i];
}
sort(a,a+n/2);
for(i=0;i scanf("%d",&b[i]);
if(a[i]!=b[i]){
m=1;
}
}
if(m==1){
printf("Merge Sort\n");
q=2;
while(z!=0){
z=0;
for(i=0;i if(n-i-q>=0){
sort(c+i,c+i+q);
}
else{
sort(c+i,c+n);
}
}

        for(i=0;i<n;i++){
            if(c[i]!=b[i]){
                z=2;
                break;
            }
        }
        if(z==2){
            q=2*q;
        }
    }
    q=2*q;
    for(i=0;i<n;i+=q){
        if(n-i-q>=0){
            sort(c+i,c+i+q);
        }
    else{
            sort(c+i,c+n);
        }
    }
    printf("%d",c[0]);
    for(i=1;i<n;i++){
        printf(" %d",c[i]);
    }
    printf("\n");
}
else{
    printf("Insertion Sort\n");
    sort(a,a+n/2+1);
    printf("%d",a[0]);
    for(i=1;i<n;i++){
        printf(" %d",a[i]);
    }
    printf("\n"); 
}
return 0;

}


其他都正确,只出现一个段错误,不知道哪里出错了。希望大神帮我看一下,谢谢!

http://blog.csdn.net/qq_17249047/article/details/46768423