Как объединить два отсортированных массива в Python: методы и примеры

Чтобы объединить два отсортированных массива в Python, вы можете использовать различные методы. Вот несколько подходов:

Метод 1: использование функции sorted()

Вы можете использовать встроенную функцию sorted()для объединения двух отсортированных массивов. Сначала объедините два массива, а затем используйте функцию sorted()для сортировки объединенного массива.

def merge_sorted_arrays(arr1, arr2):
    merged_array = arr1 + arr2
    merged_array = sorted(merged_array)
    return merged_array

Метод 2: использование модуля heapq

Модуль heapqпредоставляет эффективный способ объединения отсортированных списков с помощью функции merge(). Этот метод особенно полезен при работе с большими массивами.

import heapq
def merge_sorted_arrays(arr1, arr2):
    merged_array = list(heapq.merge(arr1, arr2))
    return merged_array

Метод 3: использование двух указателей

Вы можете объединить два отсортированных массива, используя два указателя, по одному на каждый массив. Сравните элементы в соответствующих позициях указателей и вставьте меньший элемент в новый массив. Переместите указатель массива, из которого был выбран меньший элемент. Повторяйте этот процесс до тех пор, пока один из массивов не будет полностью пройден. Затем добавьте оставшиеся элементы другого массива в объединенный массив.

def merge_sorted_arrays(arr1, arr2):
    merged_array = []
    i = j = 0
    while i < len(arr1) and j < len(arr2):
        if arr1[i] < arr2[j]:
            merged_array.append(arr1[i])
            i += 1
        else:
            merged_array.append(arr2[j])
            j += 1
    while i < len(arr1):
        merged_array.append(arr1[i])
        i += 1
    while j < len(arr2):
        merged_array.append(arr2[j])
        j += 1
    return merged_array