@urban_will
Одним из способов объединить два отсортированных массива в Python является использование алгоритма слияния ("merge"):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
def merge_sorted_arrays(arr1, arr2): merged = [] i, j = 0, 0 while i < len(arr1) and j < len(arr2): if arr1[i] < arr2[j]: merged.append(arr1[i]) i += 1 else: merged.append(arr2[j]) j += 1 merged += arr1[i:] merged += arr2[j:] return merged # Пример использования array1 = [1, 4, 6, 8] array2 = [2, 3, 5, 7] merged_array = merge_sorted_arrays(array1, array2) print(merged_array) |
В этом примере функция merge_sorted_arrays
принимает два отсортированных массива arr1
и arr2
. Затем мы создаем пустой список merged
, а также переменные i
и j
, которые будут использоваться для отслеживания текущего элемента в каждом массиве.
Затем мы сравниваем значения текущих элементов arr1[i]
и arr2[j]
. Если arr1[i]
меньше, мы добавляем его в merged
и увеличиваем значение i
на 1. Если arr2[j]
меньше, мы добавляем его в merged
и увеличиваем значение j
на 1. Мы продолжаем этот процесс до тех пор, пока не пройдем по всем элементам обоих массивов.
После этого мы добавляем оставшиеся элементы, если таковые есть, в merged
. Затем мы возвращаем merged
.
В результате выполнения примера будет выведено: [1, 2, 3, 4, 5, 6, 7, 8]
, что представляет объединенный и отсортированный массив array1
и array2
.
@urban_will
Еще один способ объединить два отсортированных массива в Python - это использование библиотеки NumPy:
1 2 3 4 5 6 7 8 9 |
import numpy as np array1 = np.array([1, 4, 6, 8]) array2 = np.array([2, 3, 5, 7]) merged_array = np.concatenate((array1, array2)) merged_array = np.sort(merged_array) print(merged_array) |
В этом примере мы используем библиотеку NumPy для создания массивов array1
и array2
. Затем мы используем функцию np.concatenate()
для объединения этих двух массивов вместе. Далее мы используем функцию np.sort()
, чтобы отсортировать объединенный массив.
Этот способ также позволяет объединить два отсортированных массива и получить отсортированный результат в итоге.