#include using namespace std;

void Input(int a[], int n) {//读入序列
for (int i = 0; i < n; i++)
cin >> a[i]; }

int Search_Mid(int A[], int B[], int n) {//求解两个升序序列的中位数 int i = 0, j = 0, k = 0; int C[2 * n];

//合并两个序列
while (i < n && j < n) { 
    if (A[i] <= B[j]) 
        C[k++] = A[i++]; 
    else 
        C[k++] = B[j++]; 
} 

while (i < n) 
    C[k++] = A[i++]; 

while (j < n) 
    C[k++] = B[j++]; 

//计算中位数
if (k % 2 == 0) 
    return (C[k / 2 - 1] + C[k / 2]) / 2; 
else 
    return C[k / 2]; 

}

int main() { int n; while (cin >> n) { if (n == 0) break; int A[6], B[6]; Input(A, n); Input(B, n); cout << Search_Mid(A, B, n) << endl; } return 0; }

#include iostream using namespace std; void Inputint a int n 读入序列 for int i = 0; i n; i++ cin ai; int Search_Midint A int B int n 求解两个升序序列的中位数 begin end int main int n; w

原文地址: https://www.cveoy.top/t/topic/bpN5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录