>>249 ありがとうございます。こんな感じになりました。 int median_search(const int *A,const int *B, int n){ int m; if(n==1) return A[0]>B[0]?A[0]:B[0]; m = n>>1; if(A[m]>B[m]) return median_search(A,B+m,m); return median_search(A+m,B,m); } nは配列AとBの長さです。 ソート済みの配列AとBをマージした長さ2nの配列をCとするとこの関数はC[n]を返します。 A[0]>B[0]?A[0]:B[0];の部分を、A[1]<B[1]?A[1]:B[1];にすればC[n+1]を返します。