Собственно есть файл1 и файл2, допустим обьем файла1 100кк строк, а файла2 20кк строк, нужно проверить вхождения файла2 в файл1, и записать в новые 2 файла строки которые либо есть в файле1 либо нету, по сколько обьемы строк очень большие есть ли какие то быстрые не ресурсоемкие решения на с++ или с#?
Смотрите, наивный алгоритм, который будет сравнивать каждую строчку с каждой, будет для вас слишком медленным. Поэтому сделаем алгоритм, который разделит данные за один проход.
Для начала отсортировать ваши файлы. Это на самом деле самая ресурсоёмкая операция. Для этого вам может понадобиться внешняя сортировка, если ваши файлы не влезают в память.
Теперь, когда файлы отсортированы, вы делаете так. Пусть у вас есть текущая строка из первого файла (назовём его словарём), и второго (назовём его вводом). Откроем оба файла, и считаем первую строку из каждого.
Далее в цикле пока ввод или словарь не окончился, делаем следующее в цикле:
Если после окончания цикла ввод не окончился, все его строки тоже попадают во второй выходной файл.
Обратите внимание, что алгоритм довольно сильно напоминает сортировку слиянием, которая вам, судя по всему, понадобится для внешней сортировки.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости