/* 整列配列AとBの併合プログラム例 */ #include #define N 100 /* 配列の最大サイズ */ /* 関数の宣言 */ void merge(int *A, int nA, int *B, int nB, int i, int *C); main() /* 整列配列AとBを併合しCに入れるテストプログラム */ { int A[N], B[N], C[2*N]; int nA, nB, nC; int i; nA=10; nB=15; /* データの生成 */ nC=nA+nB; for(i=0; i= nA) {C[i+iC] = B[iB]; iB = iB+1;} /* Aは既に空 */ else { if(iB >= nB) {C[i+iC] = A[iA]; iA = iA+1;} /* Bは既に空 */ else /* A[iA]とB[iB]の小さい方をCへ */ { if(A[iA] <= B[iB]) {C[i+iC] = A[iA]; iA = iA+1;} else {C[i+iC] = B[iB]; iB = iB+1;} } } iC = iC+1; } return; }