How to merge two sorted arrays in C

1 Answer

0 votes
#include <stdio.h>
 
#define LEN1 8
#define LEN2 6

void merge_arrays(int arr1[], int arr2[], int mergedarr[], int size1, int size2) {
    int totalSize = LEN1 + LEN2;
  
    int i = 0, j = 0, k = 0;
 
    while (i < size1 && j < size2) {
        if (arr1[i] < arr2[j]) {
            mergedarr[k++] = arr1[i++];
        }
        else {
            mergedarr[k++] = arr2[j++];
        }
    }
 
    while (i < size1) {
        mergedarr[k++] = arr1[i++];
    }
 
    while (j < size2) {
        mergedarr[k++] = arr2[j++];
    }
}
 
int main()
{
    int arr1[LEN1] = { 1, 3, 5, 6, 9, 10, 12, 13 };
    int arr2[LEN2] = { 1, 2, 4, 7, 8, 9 };
    int mergedarr[LEN1 + LEN2] = { 0 };
    int size1 = sizeof(arr1) / sizeof(arr1[0]);
    int size2 = sizeof(arr2) / sizeof(arr2[0]);
    int totalSize = LEN1 + LEN2;

    merge_arrays(arr1, arr2, mergedarr, size1, size2);
 
    for (int i = 0; i < totalSize; i++) {
        printf("%d ", mergedarr[i]);
    }
 
    return 0;
}
 
 
 
/*
run:
 
1 1 2 3 4 5 6 7 8 9 9 10 12 13 
 
*/

 



answered Jul 6, 2020 by avibootz
edited Dec 19, 2024 by avibootz

Related questions

1 answer 155 views
1 answer 78 views
78 views asked May 28, 2023 by avibootz
1 answer 57 views
1 answer 82 views
...