// Efficient Code : import java.util.*; import java.io.*; class Solution { public static void main (String[] args) { int a[] = new int[]{10,15,20,40}; int b[] = new int[]{5,6,6,10,15}; int m = a.length; int n = b.length; merge(a,b,m,n); } static void merge(int a[], int b[], int m, int n) { int i=0,j=0; while(i<m && j<n){ if(a[i]<b[j]) System.out.print(a[i++]+" "); else System.out.print(b[j++]+" "); } while(i<m) System.out.print(a[i++]+" "); while(j<n) System.out.print(b[j++]+" "); } } // Naive Code : import java.util.*; import java.io.*; class Solution { public static void main (String[] args) { int a[] = new int[]{10,15,20,40}; int b[] = new int[]{5,6,6,10,15}; int m = a.length; int n = b.length; merge(a,b,m,n); } static void merge(int a[], int b[], int m, int n){ int[] c=new int[m+n]; for(int i=0;i<m;i++) c[i]=a[i]; for(int j=0;j<n;j++) c[j+m]=b[j]; Arrays.sort(c); for(int i=0;i<m+n;i++) System.out.print(c[i]+" "); } }