7-3 两个有序序列的中位数 (25分)
已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列,的中位数指A?(N−1)/2??的值,即第⌊个数(A?0??为第1个数)。
输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。
在一行中输出两个输入序列的并集序列的中位数。
5
1 3 5 7 9
2 3 4 5 6
4
6
-100 -10 1 1 1 1
-50 0 2 3 4 5
1
#include <stdio.h> #include <stdlib.h> void sort(int *a, int left, int right); int main(int argc, const char *argv[]) { int n, i, j, temp=0; int *s = (int*)malloc(10000*sizeof(int)); scanf("%d",&n); for(i=0; i<2*n; i++) { scanf("%d",&s[i]); } for(i=0; i<2*n; i++) { for(j=i+1; j<2*n; j++) { if(s[i] < s[j]) { temp = s[i]; s[i] = s[j]; s[j] = temp; } } } printf("%d", s[(2*n-1)/2]); free(s); return 0; }
原文:https://www.cnblogs.com/ytdyz/p/12336803.html