OneCompiler

Merge array

115

class Merg {
    public void mergearry(int nums1[], int n, int nums2[], int m) {
        int i = n - 1;
        int j = m - 1;
        int k = m + n - 1;
        while (i >= 0 && j >= 0) {
            if (nums1[i] > nums2[j]) {
                nums1[k] = nums1[i];
                k--;
                i--;
            } else {
                nums1[k] = nums2[j];
                k--;
                j--;
            }
        }
        // Copy remaining elements of nums2, if any
        while (j >= 0) {
            nums1[k] = nums2[j];
            k--;
            j--;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        int nums1[] = {1, 2, 3, 0, 0, 0}; // nums1 has placeholders
        int nums2[] = {2, 5, 6};
        int n = 3; // Initial number of elements in nums1
        int m = 3; // Number of elements in nums2
        Merg ma = new Merg();
        ma.mergearry(nums1, n, nums2, m);
        for (int i = 0; i < m + n; i++) {
            System.out.print(nums1[i] + " ");
        }
    }
}