Answers for "merge two sorted arrays using recursively"

0

merge two sorted arrays using recursively

public static char[] mergeArrays(char[] a, char[] b) {
    if(a.length == 0)
        return b;

    if(b.length == 0)
        return a;

    char[] newArr = new char[a.length + b.length];
    if(a[0] <= b[0]) {
        newArr[0] = a[0];
        char[] merged = mergeArrays(Arrays.copyOfRange(a, 1, a.length), b);
        System.arraycopy(merged, 0, newArr, 1, merged.length);
    } else {
        newArr[0] = b[0];
        char[] merged = mergeArrays(a, Arrays.copyOfRange(b, 1, b.length));
        System.arraycopy(merged, 0, newArr, 1, merged.length);
    }

    return newArr;
}
Posted by: Guest on January-18-2022
0

merge two sorted arrays using recursively

public static char[] mergeArrays( char[] A, char[] B) {
    char[] sorted = new char[A.length + B.length];
    mergeArraysHelper(A, B, sorted, 0);
    return sorted;
}

public static void mergeArraysHelper(char[] a, char[] b, char[] sorted, int index) {
    if(a.length == 0) {
        System.arraycopy(b, 0, sorted, index, b.length);
        return;
    }

    if(b.length == 0) {
        System.arraycopy(a, 0, sorted, index, a.length);
        return;
    }

    if(a[0] <= b[0]) {
        sorted[index] = a[0];
        mergeArraysHelper(Arrays.copyOfRange(a, 1, a.length), b, sorted, index + 1);
    } else {
        sorted[index] = b[0];
        mergeArraysHelper(a, Arrays.copyOfRange(b, 1, b.length), sorted, index + 1);
    }
}
Posted by: Guest on January-18-2022

Browse Popular Code Answers by Language