Очень хорошо учиться, а не копировать.
Как вы предполагаете, нет разницы между вариантами 1 и 2, но наихудший вариант алгоритмов зависит от вашего решения.Поэтому я опишу свое решение (без кода) и дам вам его худший случай.
В обоих случаях массивы должны заканчиваться бесконечностью, поэтому добавьте к ним бесконечность.затем итерируйте по всем элементам каждого массива, в каждый момент времени выбирайте тот, который меньше, и вставляйте его в свой массив результатов (объединение массивов буксировки).
С этим решением вы можете легко вычислить наихудший случай.мы должны перебрать оба массива один раз, и мы добавим бесконечность к ним обоим, если их длина равна n и m, поэтому наш худший и лучший случай - O(m + n)
(вы делаете m + n + 2 - 1
сравнение и -1, потому что вы этого не делаетесравните конец обоих массивов, я имею в виду бесконечность)
но зачем добавлять бесконечность добавить конец массива?потому что для этого мы должны сделать копию массива с еще одним пробелом?это один из способов, и наихудший случай - O(m + n)
для копирования массивов тоже.но есть и другое решение.вы можете сравнивать, пока не доберетесь до конца массива, затем вы должны добавить остаток массива, который не сравнивается полностью с концом вашего массива результатов.но с бесконечностью, это автоматически.
Я надеюсь, что помог вам.если что-то не так, прокомментируйте это.