Submission #22
Submitted by test1
Problem Median of Two Sorted Arrays
Language c
Time 1.0
Memory 0.0
Submitted Code
#include <stdio.h>
#include <stdlib.h>

// Compare function for qsort
int compare(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

double findMedianSortedArrays(int* nums1, int m, int* nums2, int n) {
    int total = m + n;
    int* merged = (int*)malloc(sizeof(int) * total);

    // Merge both arrays
    for (int i = 0; i < m; i++) {
        merged[i] = nums1[i];
    }
    for (int i = 0; i < n; i++) {
        merged[m + i] = nums2[i];
    }

    // Sort merged array
    qsort(merged, total, sizeof(int), compare);

    // Find median
    double median;
    if (total % 2 == 0) {
        median = (merged[total/2 - 1] + merged[total/2]) / 2.0;
    } else {
        median = merged[total/2];
    }

    free(merged);
    return median;
}

// Sample driver code
int main() {
    int nums1[] = {1, 2, 5};
    int nums2[] = {3, 4};
    int m = sizeof(nums1) / sizeof(nums1[0]);
    int n = sizeof(nums2) / sizeof(nums2[0]);

    double result = findMedianSortedArrays(nums1, m, nums2, n);
    printf("Median: %.1f\n", result);
    return 0;
}