, поэтому вам нужно найти для каждой позиции в новом массиве наименьшее оставшееся значение. Входными данными являются массивы a и b с n и m элементами. Найдите минимальное значение в обоих массивах. сравните два значения и установите для меньшего значения значение max в своем массиве, чтобы предотвратить его повторное обнаружение. Установите минимальное значение в c.
Псевдокод:
merge(a[n],b[m]){
c[n+m];
for (i = 0, i < n+m; i++){
aMin = getMinValue(a);
bMin = getMinValue(b);
if(aMin < bMin) setMinValueToMax(a,aMin)
else setMinValueToMax(b,bMin)
c[i] = min(aMin,bMin)
}
return c;
}
Здесь n - размер большего массива. GetMinValue будет работать в O (n), просто перебирать все элементы. SetMinValueToMax также будет работать в O (n), если вы не сохраните индекс. For-l oop будет в O (n). Тело для for равно 0 (3n) (2 x getMinValue + setMinValueToMax). В больших O постоянные факторы могут быть удалены, что приводит к времени выполнения O (n ^ 2).