58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
|
/*
|
||
|
* C Program to Find the Median of the Elements after Merging these 2 Sorted Arrays with Same Size
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
|
||
|
int getMedian(int array1[], int array2[], int n)
|
||
|
{
|
||
|
int i = 0; /* Current index of i/p array array1[] */
|
||
|
int j = 0; /* Current index of i/p array array2[] */
|
||
|
int count;
|
||
|
int m1 = -1, m2 = -1;
|
||
|
for (count = 0; count <= n; count++)
|
||
|
{
|
||
|
if (i == n)
|
||
|
{
|
||
|
m1 = m2;
|
||
|
m2 = array2[0];
|
||
|
break;
|
||
|
}
|
||
|
else if (j == n)
|
||
|
{
|
||
|
m1 = m2;
|
||
|
m2 = array1[0];
|
||
|
break;
|
||
|
}
|
||
|
if (array1[i] < array2[j])
|
||
|
{
|
||
|
m1 = m2; /* Store the prev median */
|
||
|
m2 = array1[i];
|
||
|
i++;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
m1 = m2; /* Store the prev median */
|
||
|
m2 = array2[j];
|
||
|
j++;
|
||
|
}
|
||
|
}
|
||
|
return (m1 + m2)/2;
|
||
|
}
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
int array1[] = {20, 25, 35, 30, 38};
|
||
|
int array2[] = {22, 53, 65, 72, 45};
|
||
|
int n1 = sizeof(array1) / sizeof(array1[0]);
|
||
|
int n2 = sizeof(array2) / sizeof(array2[0]);
|
||
|
if (n1 == n2)
|
||
|
printf("Median is %d", getMedian(array1, array2, n1));
|
||
|
else
|
||
|
printf("not possible to findout");
|
||
|
getchar();
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
Median is 34
|