@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
.