大佬们,我这怎么错了啊
一个长度为L (L>=1)的升序序列S,处在第[L/2]个位置的数称为S的中位数。例如,若序列S1=(11, 13, 15, 17, 19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2= (2, 4,6,8, 20),则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。
#include<stdio.h>
#include<stdlib.h>
int A[7] = { 1,2,3,4,5,6,7 };
int B[7] = { 3,4,5,6,7,8,9 };
int C[14]={0};
int n = 7;
void search(int A[], int B[],int C[],int n)
{
for (int i = 0; i < n; i++)
{
int j = 0, k = 0;
if (A[j] <= B[k])
{
C[i] = A[j];
j++;
}
else {
C[i] = B[k];
k++;
}
}
}
int main()
{
search(A, B, C, 7);
int i;
for (i = 0; i < n; i++)
{
printf("%2d", C[i]);
}
printf("中位数:");
printf("%d\n",C[6]);
return 0;
}