C/C++の宿題やらせてください。7代目。
■ このスレッドは過去ログ倉庫に格納されています
0249デフォルトの名無しさん
NGNG#define N 8
void merge(int end_a,int end_b){
int i=0,j=0,k=0,m,a[N],b[N],c[N];
while((i<end_a)&&(j<end_b))
if(a[i]<=b[j]) c[k++]=a[i++];
else c[k++]=b[j++];
if(i>=end_a)
for(m=j;m<end_b;m++) c[m+end_a]=b[m];
else
for(m=i;m<end_a;m++) c[m+end_b]=a[m];
}
void sort(int p,int q){
int i,med,a[N],b[N],c[N],d[N];
if(p<q){
med=(p+q)/2;
sort(p,med);
sort(med+1,q);
for(i=p;i<med;i++)
a[i-p]=d[i];
for(i=med+1;i<=q;i++)
b[i-med-1]=d[i];
merge(med-p-1,q-med);
for(i=p;i<=q;i++)
d[i]=c[i-p];
}
}
■ このスレッドは過去ログ倉庫に格納されています