该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在做算法分析实验时,做到自底向上合并排序,编译无错误无警告,但就是无法运行,窗口出现Process returned -1073741819 (0xC0000005)
代码如下
void bottomupsort(int arr[],int n){
int i,s,t=1;
while(t
s=t;
t=2*s;
i=0;
while(i+t<=n){
Merge(arr,i+1,i+s,i+t);
i=i+t;
}
if(i+s
Merge(arr,i+1,i+s,n);
}
for(i=0;i
printf("%d ",arr[i]);
}
printf("\n");
}
void Merge(int ar[],int low,int mid,int high){
int i;
int b[]={0};
int s=low;
int t=mid+1;
int k=low;
while(s<=mid&&t<=high){
if(ar[s]<=ar[t]){
b[k]=ar[s];
s++;
}else{
b[k]=ar[t];
t++;
}
k++;
}
if(s==mid+1){
for(;s<=high;k++,t++){
b[k]=ar[t];
}
}else{
for(;s<=mid;k++,s++){
b[k]=ar[s];
}
}
for(i=low;i<=high;i++){
ar[i]=b[i];
}
}
int main(){
printf("输入数据个数:");
scanf("%d",&n);
int a[n]={0};
printf("输入数组:");
for(i=0;i
scanf("%d",&a[i]);
}
bottomupsort(a,n);
return 0;
}