26

 avatar
unknown
c_cpp
4 years ago
734 B
7
Indexable
#include<stdio.h>

int merge(int arr1[], int arr2[], int n1, int n2, int arr3[], int n3)
{
	int i = 0, j = 0, k = 0;

	while (i < n1 && j < n2)
	{
		if (arr1[i] < arr2[j])
			arr3[k++] = arr1[i++];
		else
			arr3[k++] = arr2[j++];
	}

	while (i < n1)
		arr3[k++] = arr1[i++];

	while (j < n2)
		arr3[k++] = arr2[j++];
		
	n3 = (sizeof(*arr1) + sizeof(*arr2) - 1)/2;
	
	return arr3[n3];
}

int main()
{
	int arr1[] = {1, 3, 5, 7};
	int n1 = sizeof(arr1) / sizeof(arr1[0]);

	int arr2[] = {2, 4, 6, 8};
	int n2 = sizeof(arr2) / sizeof(arr2[0]);

	int arr3[n1+n2];

// 	printf("Array after merging \n");
// 	for (int i=0; i < n1+n2; i++)
// 		printf("%d ", arr3[i]);
	printf("%d ", merge(arr1, arr2, n1, n2, arr3, n1+n2));

	return 0;
}
Editor is loading...