пишу на php, и есть реальная задача сравнения 2х огромных массивов данных. Но загвостка в том, что эти массивы разбиты по файлам...
файл а1 - содержит 5000 цифр файл а2 - содержит 5000 цифр .... И таких файлов очень много Все вместе это массив более 10 000 000 цифр
Так же есть аналогичные файлы б1, б2, б3... С такой же структурой по 5000 цифр, и по сути это тот же массив что и в а1, только какие-то цифры были удалены от туда, а какие то добавлены.
Так вот мне нужно сравнить эти 2 массива, чтобы на выходе получить что туда добавили а что удалили.
Почему я не могу просто собрать 2 массива из 10 000 000 записей и сравнить их array_diff ?? Да потому что по памяти не вывезу, да и записей может быть в теории куда больше.
По этому ищу решения какого нибудь рекурсивного сравнивания
В1:Берете А1 и В1. Одинаковые элементы удалили. К А1 добавили А2, к В1 добавили В2, сравнили, снова одинаковые удалили, и т.д.
В2 (более быстрый):
Берете А1 и В1. Одинаковые элементы удалили.
Берете А2 и В2. Одинаковые элементы удалили.
Сравнили остатки А с В2 и наоборот А2 с В. Одинаковые элементы удалили. (этот пункт делать, если записи могли перемещатся между файлами)
Добавили А2 к остаткам А, В2 к остаткам В.
пп 2-3 в цикле для остальных...
В результате в массиве А останутся те, которые были удалены, а в массиве В, те которые были добавлены.
Для случая, если файлы могут сильно различатся, можно использовать дополнительные алгоритмы выбора очередного файла для сравнения. Например изначально перебрать все файлы и найти медиану чисел в каждом файле. Отсортировать их в порядке увеличения. И в этом порядке их сравнивать. Возможно также учитывать при выборе файлов минимальное и максимальное число в файле.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пишу плагин форма обратной связи, соответственно нужно обрабатывать отправку формы, в связи с этим вопрос, в wordpress есть хук отвечающий за отправку...
В стандартной библиотеке MSVC 2017 поставляется примерно такая реализация std::size:
Хочу реализовать масштабирование в QtGraphicsView через колесико мышиНа данный момент делаю это через фильтр событий следующим способом:
Мне нужно в один момент времени изменить позицию тела по заданным координатамТо есть летит тело и нужно его "телепортировать" на новую позицию