归并排序
请问哪里错了呀 找半天找不出来#include<stdio.h>
#include<stdio.h>
#define MAX_size 100
typedef struct{
int a;
int length;
}SqLiszt;
void Merge(int *sr,int *tr,int i,int m,int n){//m为中间数归并到trsr1-m
int p1 =i,p2=n,temp = i;
while(p1<=m&& p2<=n){
if(sr<sr)
tr= sr;
else
tr= sr;
}
while(p1<=m){
tr= sr;
}
while(p2<=n){
tr= sr;
}
}
void M_Sort(int *sr, int *tr1,int s,int t){ //s 为第一个 ,t 为最后一个
int mid;
int tr2;
if(s==t){
tr1= sr;
}
else{
mid = (s+t)/2;
M_Sort(sr,tr2,s,mid);
M_Sort(sr,tr2,mid+1,t);
Merge(tr2,tr1,s,mid,t);
}
}
void
Merge_sort(SqLiszt *L){
M_Sort(L->a,L->a,1,L->length);
}
int main(){
SqLiszt L;
L.length =0;
int temp;
for(int i =1;i<=10;i++){
temp = 10-i;
L.a = temp;
L.length ++;
}
Merge_sort(&L);
printf("排序后的结果为:\n");
for(int i= 1; i<=L.length;i++){
printf("%d ",L.a);
}
return 0;
} 代码还没有看完,不知道其他地方有没有问题,但这里肯定不对,代码的其他部分我再看看
这里的 p2 应该初始化为m + 1
int p1 = i, p2 = m + 1, temp = i;
看完了,还有这个,其他应该没问题
人造人 发表于 2021-9-11 11:18
看完了,还有这个,其他应该没问题
谢谢 正确了{:5_92:}
页:
[1]