Skip to content

Instantly share code, notes, and snippets.

@studentbrad
Created October 23, 2019 23:14
Show Gist options
  • Save studentbrad/0ee251ff11218136da2ddf2b3f9bb215 to your computer and use it in GitHub Desktop.
Save studentbrad/0ee251ff11218136da2ddf2b3f9bb215 to your computer and use it in GitHub Desktop.
Median of Two Sorted Arrays
double find_median_sorted_arrays(int *nums1, int nums1Size, int *nums2, int nums2Size)
{
int nums3Size = nums1Size + nums2Size;
int nums3[nums3Size];
int i = 0;
int j = 0;
while ((i != nums1Size) && (j != nums2Size))
{
if (nums1[i] <= nums2[j])
{
nums3[i++ + j] = nums1[i];
}
else if (nums2[j] < nums1[i])
{
nums3[i + j++] = nums2[j];
}
}
if (i != nums1Size)
{
for (i; i < nums1Size; i++)
{
nums3[i + j] = nums1[i];
}
}
else if (j != nums2Size)
{
for (j; j < nums2Size; j++)
{
nums3[i + j] = nums2[j];
}
}
if (nums3Size % 2)
{
return (float)nums3[nums3Size / 2];
}
else
{
return ((float)nums3[nums3Size / 2 - 1] + nums3[nums3Size / 2]) / 2.0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment