Как объединить два отсортированных массива в отсортированный массив? [closed]

Меня об этом спросили в интервью, и я предложил следующее решение:

public static int[] merge(int[] a, int[] b) {

    int[] answer = new int[a.length + b.length];
    int i = 0, j = 0, k = 0;
    while (i < a.length && j < b.length)
    {
        if (a[i] < b[j])
        {
            answer[k] = a[i];
            i++;
        }
        else
        {
            answer[k] = b[j];
            j++;
        }
        k++;
    }

    while (i < a.length)
    {
        answer[k] = a[i];
        i++;
        k++;
    }

    while (j < b.length)
    {
        answer[k] = b[j];
        j++;
        k++;
    }

    return answer;
}

Есть ли более эффективный способ сделать это?

Изменить: методы исправленной длины.

157
задан Community 16 April 2015 в 22:53
поделиться