powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / сравнение двух файлов txt
17 сообщений из 17, страница 1 из 1
сравнение двух файлов txt
    #34873637
deffss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
файлы содержат текстовые строки (5000-150000 шт.). Задача: сравнить 2 файла. на выходе получить результат -строки которые есть в первом файле, но нет во втором и наоборот.
Подскажите, пожалуйста, есть ли какие быстрые алгоритмы сравнения для данной задачи? Важна скорость выполнения операции.
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34873704
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deffssфайлы содержат текстовые строки (5000-150000 шт.). Задача: сравнить 2 файла. на выходе получить результат -строки которые есть в первом файле, но нет во втором и наоборот.
Подскажите, пожалуйста, есть ли какие быстрые алгоритмы сравнения для данной задачи? Важна скорость выполнения операции.

какой алгоритм вы опробовали и он вас не устроил по скорости? и пример кода пожайлуста
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34873711
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходники diff изучить? :)
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34873730
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем изучать? просто использовать
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34873762
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedА зачем изучать? просто использовать

Могёт это курсовик? :)
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34873837
deffss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akh blindedА зачем изучать? просто использовать

Могёт это курсовик? :)

Не курсовик :) Можно поподробнее про diff, вроде это утилита Линукса.
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34873874
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34874069
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже это под винды: DiffUtils for Windows
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34874137
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deffss wrote:
> файлы содержат текстовые строки (5000-150000 шт.). Задача: сравнить 2
> файла. на выходе получить результат -строки которые есть в первом файле,
> но нет во втором и наоборот.
> Подскажите, пожалуйста, есть ли какие быстрые алгоритмы сравнения для
> данной задачи? Важна скорость выполнения операции.

На мой взгляд, недостаточно информации о задаче. Упорядоченны ли строки
в файлах, или нет? Как быть с одинаковыми строками? Что считать
совпадающими строками? В каком виде интересует результат - содержимое
строк или номера строк?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34874494
deffss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
teras
На мой взгляд, недостаточно информации о задаче. Упорядоченны ли строки
в файлах, или нет? Как быть с одинаковыми строками? Что считать
совпадающими строками? В каком виде интересует результат - содержимое
строк или номера строк?
Posted via ActualForum NNTP Server 1.4

Результат 2 файла. В первом файле строки, которых нет во втором. Во втором файле наоборот.
Строки не упорядочены, т.е. позиция строки в первом файле может не совпадать с позицией этой же строки во втором. Совпадающие строки - две одинаковых строки. Одинаковые строки в выходных файлах не нужны.
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34874622
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34875151
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deffss wrote:
> Автор: "deffss"
> teras
>
> На мой взгляд, недостаточно информации о задаче. Упорядоченны ли строки
> в файлах, или нет? Как быть с одинаковыми строками? Что считать
> совпадающими строками? В каком виде интересует результат - содержимое
> строк или номера строк?
> Posted via ActualForum NNTP Server 1.4
>
>
>
> Результат 2 файла. В первом файле строки, которых нет во втором. Во
> втором файле наоборот.
> Строки не упорядочены, т.е. позиция строки в первом файле может не
> совпадать с позицией этой же строки во втором. Совпадающие строки - две
> одинаковых строки. Одинаковые строки в выходных файлах не нужны.

Тогда два варианта: отсортировать оба файла, удалив совпадающий строки,
затем, выполняем слияние отсортированных последовательностей с
небольшими модификациями относительно выхода: из файлов считываем по
одной строке. равны - значит строка присутствует в обоих файлах,
считываем следующие строки из ОБОИХ файлов. Не нервны - если строка из
первого файла меньше второй - значит она отсутствует во втором
(сохраняем ее). Затем считываем строку из того файла, в котором строка
была меньше.
Второй вариант - создать хеш-таблицу из второго файла, затем - проход по
первому и проверка совпадения. Для уменьшения объема памяти - можно
хешировать не сами строки а их контрольные суммы (например - CRC, SHA,
MD4) в этом случае придется подчитывать строки для сравнения из файла.
для реализации второго подхода можно использовать готовые библиотеки
типа dbm, gdbm, etc...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34876590
AndreiNz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще ли создать два листа и загрузить в каждый строки из соответствующих файлов. Затем бежим по первому листу, берем первую строку и ищем ее во втором листе простым перебором. Если находим, та удаляем строку из обоих листов. Затем делаем тоже самое со второй строкой из первого листа и так пока не переберем весь первый лист. Все, что осталось выплевываем в два файла. Для ускорения можно заменить второй лист на мап. Еще более интересный вариант - создать два сета и получть пересечение.
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34876591
AndreiNz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть не пересечение, а то, что останется в сетах, если пересечение из них удалить.
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34876603
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreiNz wrote:

> А не проще ли создать два листа и загрузить в каждый строки из
> соответствующих файлов. Затем бежим по первому листу, берем первую
> строку и ищем ее во втором листе простым перебором.
Можно сразу отсортировать оба "листа" (qsort, hashsort, и т.д.), и потом
поисков придется производить намного меньше (просто надо будет
перебрать одновременно оба списка от начала до конца).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34876855
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> AndreiNz wrote:
>
> А не проще ли создать два листа и загрузить в каждый строки из
> соответствующих файлов. Затем бежим по первому листу, берем первую
> строку и ищем ее во втором листе простым перебором.

Вообще-то это зависит от перспектив. Тут строк немного, поэтому все
пойдет. Если файлы будут расти, то разница во времени станет заметнее, и
чем дальше - тем больше.

Линейные поиски по несортированному списку - O(n^2),
сортировки и слияние - O(2*log(n)+n),
хеширование - O(n).
Где n - количество строк в обоих файлах.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сравнение двух файлов txt
    #34878097
deffss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы, воспользовался STL. Скорость работы вполне подходит.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / сравнение двух файлов txt
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]