Find median of two sorted Arrays
Hello, student today we learn about Finding the Median techniques using the Malloc in C Programming Language. The median is the part of the Middle in a Sorted number and maybe their type in ascending or descending order in an Array. Find median of two sorted arrays of different sizes in C.
Median of two sorted arrays
Array = [9,11,16,7,2]
Sorted array = [2,7,9,11,16]
#include <stdio.h>
#include <stdlib.h>
void swap (int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main ()
{
int i, min_pos, k, j, m, med, mid, size;
float med1, val;
size=1;
int *arr=malloc(size*sizeof(int));
if (arr == NULL)
{
printf("Error! Mem not allocated");
exit (0);
}
printf ("Enter the no\n");
k=0;
int num=0;
do{
printf("Enter a number : ");
scanf ("%d", &num);
arr = realloc(arr, (size++) * sizeof(int));
if(num!=-1)
arr[k++]=num;
}
while(num!=-1);
//selection sort
for (i = 0; i < k - 1; i++)
{
min_pos = i;
//find min element
for (j = i + 1; j < k; j++)
{
if (arr[j] < arr[min_pos])
min_pos = j;
}
swap (&arr[min_pos], &arr[i]);
}
//find median
mid = k / 2;
if (k % 2 == 1)
{
val = arr[mid];
printf ("median is:%.1f", val);
}
else
{
med1 = (arr[mid - 1] + arr[mid]) / 2.0;
printf ("median is:%.1f", med1);
}
free(arr);
return 0;
}
Enter a Number: 12
Enter a Number: 13
Median 12.5
How to sort an Array in C (clickHere)
2D Array Programs in C (clickHere)
Median of two sorted arrays program in C
In case you can’t figure it out, check this
#include <stdio.h>
#include <stdlib.h>
void swap (int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main ()
{
int i, min_pos, k, j, m, med, mid, size;
float med1, val;
size=1;
int *arr=malloc(size*sizeof(int));
if (arr == NULL)
{
printf(“Error! Mem not allocated”);
exit (0);
}
printf (“Enter the no\n”);
k=0;
int num=0;
do{
printf(“Enter a number : “);
scanf (“%d”, &num);
arr = realloc(arr, (size++) * sizeof(int));
if(num!=-1)
arr[k++]=num;
}
while(num!=-1);
//selection sort
for (i = 0; i < k – 1; i++)
{
min_pos = i;
//find min element
for (j = i + 1; j < k; j++)
{
if (arr[j] < arr[min_pos])
min_pos = j;
}
swap (&arr[min_pos], &arr[i]);
}
//find median
mid = k / 2;
if (k % 2 == 1)
{
val = arr[mid];
printf (“median is:%.1f”, val);
}
else
{
med1 = (arr[mid – 1] + arr[mid]) / 2.0;
printf (“median is:%.1f”, med1);
}
free(arr);
return 0;
}
Find median of two sorted arrays of different sizes
Enter a number : 12
Enter a number : 13
Enter a number : -1
median is:12.0