C言語なら俺に聞け(入門篇) Part 19
レス数が950を超えています。1000を超えると書き込みができなくなります。
0983デフォルトの名無しさん
2007/10/15(月) 18:06:42とりあえずマージする部分のマクロはできました。
分割マクロの再帰→マージマクロ再帰でできるかなあと考えています。
でも与えられた配列を分割を繰り返して
要素数1にするという行程のプログラムをどうしても考え付きません。
どなたか教えて下さい。。マージマクロはこのままで使える方向で作りたいです。
void merge(int data1[], int n1, int data2[], int n2, int data3[]){
int index1, index2, index3, i;
index1 = index2 = index3 = 0;
printf("merge_sort\n");
while(index1 < n1 || index2 < n2){
if(index1 < n1 && index2 < n2){
(data1[index1] >= data2[index2])?(data3[index3++] = data1[index1++],)
:(data3[index3++]=data2[index2++]);
for (i=0; i<(2*N) ;i++)
printf("%d,", data3[i]);
printf("\n");
}
else if(index1 < n1){
for (;index1 < n1 ;index1++)
data3[index3++] = data1[index1]; }
else {for( ; index2 < n2 ; index2++)
{data3[index3++] = data2[index2];}}
}
}
レス数が950を超えています。1000を超えると書き込みができなくなります。