У меня есть два отсортированных массива. Мне нужно найти, если оба они разные.алгоритм для сравнения отсортированного массива
Эти массивы имеют элементы в диапазоне определенного диапазона.
Более того, один элемент может быть другим.
Массивы могут иметь разные размеры. В этом случае я должен быть в состоянии указать на различия
грубый пример:
Вход:
array1: 1 2 4 5 8 9 12
array2: 1 4 8 10 12 13 14
Здесь диапазон 1-15.
Каков наиболее оптимальный алгоритм сравнения?
Я также могу указать различия и сходства, например. 4 находится в обоих и 5 отсутствует во втором массиве.
Мое решение:
Два указателя для отслеживания индекса массива.
Направьте их в начало массива.
Начать сравнение первых двух элементов.
Если оба равны -> перейдите к следующему.
ещеНайти наибольший из двух элементов массива. Например, массив1 имеет больший элемент.
Двоичный поиск элемента в другом массиве (array2) -.> Поз этого элемента в этом массиве сказать позы
Отклона элементы массива до пос.
Указатели приращения. отменить это часть массива до этого указатели. повторение.
Это имеет сложность n log n
(намного меньше, чем в среднем, это когда вы должны сделать поиск для каждого элемента).
Какой у вас язык? – NWS
Если вы хотите проверить, содержат ли два массива одни и те же элементы, и оба массива сортируются, просто пройдите через массивы. Это самое простое решение и имеет O (n). – Zeta
Почему отбрасывание? Зачем найти самый большой? Вы можете просто распечатать наименьшее, увеличить указатель только этого массива и сравнить его снова. –