Skip to main content

Merge two sorted array

 Write a function to merge two sorted arrays.

Ex:- [ 1, 2, 4 ]  and [ 1, 3, 4 ]

output:-  [ 1, 1, 2, 3, 4, 4]


Java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MergeList {
    public static void main(String args[]) {
      int[] arr1 = { 1, 2, 4 };
      int[] arr2 = { 1, 3, 4 };
      int[] arr = mergeArray(arr1, arr2);
      
      for(int x: arr)
        System.out.print(x+" ");   // 1 1 2 3 4 4 
    }
    public static int[] mergeArray(int[] arr1, int[] arr2){
      int[] arr = new int[arr1.length + arr2.length];
      int i = 0, j = 0, k = 0;
      while(i<arr1.length && j<arr2.length){
          if(arr1[i] < arr2[j])
            arr[k++] = arr1[i++];
          else
            arr[k++] = arr2[j++];
      }  
      while(i < arr1.length) 
        arr[k++] = arr1[i++]; 
      while (j < arr2.length) 
        arr[k++] = arr2[j++];
      return arr;
    }
 }

Python

def mergeList(arr1, arr2):
    i = j = k = 0
    arr = [None]*(len(arr1)+len(arr2))
    while i<len(arr1) and j<len(arr2):
        if arr1[i]<arr2[j]:
            arr[k] = arr1[i]
            i += 1
        else:
            arr[k] = arr2[i]
            j += 1
        k += 1
    while i<len(arr1):
        arr[k] = arr1[i]
        k += 1
        i += 1
    while j<len(arr2):
        arr[k] = arr2[j]
        k += 1
        j += 1
    return arr

arr1 = [ 1, 3, 4]
arr2 = [ 1, 2, 4]
print(mergeList(arr1, arr2))

Python

def mergeList(arr1, arr2):
    return sorted(arr1+arr2)
  
arr1 = [ 1, 3, 4]
arr2 = [ 1, 2, 4]
print(mergeList(arr1, arr2))