Как объединить два отсортированных массива в python?

Пользователь

от urban_will , в категории: Python , год назад

Как объединить два отсортированных массива в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeromy_ruecker , год назад

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

Пользователь

от fred , 8 месяцев назад

@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(), чтобы отсортировать объединенный массив.


Этот способ также позволяет объединить два отсортированных массива и получить отсортированный результат в итоге.