@toshk9

Как объединить два списка (с определенной последовательностью чисел), сохранив этупоследовательность, в Python?

Есть два списка, в которых числа расположены по возрастанию (числа в списках абсолютно разные). Есть ли какой-то метод, который мог бы быстро объединить данные списки сохранив последовательность по возрастанию. Например, есть список [1, 3, 7, 9] и [2, 5, 10] и я хочу, чтобы было [1, 2, 3, 5, 7, 9, 10]
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@deliro
Есть.

1. Сложить два списка, результат отсортировать. Сложность O(n*log n)
2. «Слияние отсортированных списков». Алгоритм нагуглить, написать самому. Сложность O(n+m)

Но если списки не размером по несколько миллионов, проще и быстрее первый вариант
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
a, b, с = [1, 3, 7, 9], [2, 5, 10], []
while a and b:
    с.append((a if a[-1] > b[-1] else b).pop())
print([*a, *b, *с[::-1]]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы