Создать новый массив С, размером равным сумме размеров массивов А и В.Инициализировать переменные для индексов массивов А (i) и B (j) равными 0.Пройти по всем элементам нового массива С: Если все элементы массива А уже добавлены в С, то добавить оставшиеся элементы массива В.Если все элементы массива B уже добавлены в С, то добавить оставшиеся элементы массива A.Если элемент массива A с индексом i меньше элемента массива B с индексом j, добавить элемент массива A в С и увеличить i на 1.Иначе добавить элемент массива B в С и увеличить j на 1.Вернуть массив С.
Пример кода на Python:
def merge_arrays(A, B): C = [] i = 0 j = 0 while i < len(A) or j < len(B): if i == len(A): C.extend(B[j:]) break elif j == len(B): C.extend(A[i:]) break elif A[i] < B[j]: C.append(A[i]) i += 1 else: C.append(B[j]) j += 1 return C A = [1, 3, 5, 7] B = [2, 4, 6, 8] result = merge_arrays(A, B) print(result) # [1, 2, 3, 4, 5, 6, 7, 8]
Для этого можно использовать следующий алгоритм:
Создать новый массив С, размером равным сумме размеров массивов А и В.Инициализировать переменные для индексов массивов А (i) и B (j) равными 0.Пройти по всем элементам нового массива С:Если все элементы массива А уже добавлены в С, то добавить оставшиеся элементы массива В.Если все элементы массива B уже добавлены в С, то добавить оставшиеся элементы массива A.Если элемент массива A с индексом i меньше элемента массива B с индексом j, добавить элемент массива A в С и увеличить i на 1.Иначе добавить элемент массива B в С и увеличить j на 1.Вернуть массив С.
Пример кода на Python:
def merge_arrays(A, B):C = []
i = 0
j = 0
while i < len(A) or j < len(B):
if i == len(A):
C.extend(B[j:])
break
elif j == len(B):
C.extend(A[i:])
break
elif A[i] < B[j]:
C.append(A[i])
i += 1
else:
C.append(B[j])
j += 1
return C
A = [1, 3, 5, 7]
B = [2, 4, 6, 8]
result = merge_arrays(A, B)
print(result) # [1, 2, 3, 4, 5, 6, 7, 8]