题目描述
给定两个大小分别为
m
和n
的正序(从小到大)数组nums1
和nums2
。请你找出并返回这两个正序数组的 中位数 。
注意
- 归并排序
- double类型计算平均值:/ 2.0
代码
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2,
int nums2Size) {
int nums[2500];
memset(nums, -1, sizeof(nums));
int size = nums1Size + nums2Size;
int i = 0, j = 0;
int count = 0;
double out;
while (i < nums1Size && j < nums2Size) {
if (*(nums1 + i) <= *(nums2 + j)) {
nums[count] = *(nums1 + i);
i++;
count++;
} else {
nums[count] = *(nums2 + j);
j++;
count++;
}
}
while (i < nums1Size) {
nums[count] = *(nums1 + i);
i++;
count++;
}
while (j < nums2Size) {
nums[count] = *(nums2 + j);
j++;
count++;
}
if (size % 2 == 0) {
out = (nums[size / 2 - 1] + nums[size / 2])/2.0;
} else {
out = nums[size / 2];
}
return out;
}