|
|
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
файлы содержат текстовые строки (5000-150000 шт.). Задача: сравнить 2 файла. на выходе получить результат -строки которые есть в первом файле, но нет во втором и наоборот. Подскажите, пожалуйста, есть ли какие быстрые алгоритмы сравнения для данной задачи? Важна скорость выполнения операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 09:34:09 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
deffssфайлы содержат текстовые строки (5000-150000 шт.). Задача: сравнить 2 файла. на выходе получить результат -строки которые есть в первом файле, но нет во втором и наоборот. Подскажите, пожалуйста, есть ли какие быстрые алгоритмы сравнения для данной задачи? Важна скорость выполнения операции. какой алгоритм вы опробовали и он вас не устроил по скорости? и пример кода пожайлуста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 09:52:43 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
Исходники diff изучить? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 09:55:05 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
А зачем изучать? просто использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 09:59:55 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
blindedА зачем изучать? просто использовать Могёт это курсовик? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 10:07:16 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
Akh blindedА зачем изучать? просто использовать Могёт это курсовик? :) Не курсовик :) Можно поподробнее про diff, вроде это утилита Линукса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 10:30:11 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
Похоже это под винды: DiffUtils for Windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 11:10:16 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
deffss wrote: > файлы содержат текстовые строки (5000-150000 шт.). Задача: сравнить 2 > файла. на выходе получить результат -строки которые есть в первом файле, > но нет во втором и наоборот. > Подскажите, пожалуйста, есть ли какие быстрые алгоритмы сравнения для > данной задачи? Важна скорость выполнения операции. На мой взгляд, недостаточно информации о задаче. Упорядоченны ли строки в файлах, или нет? Как быть с одинаковыми строками? Что считать совпадающими строками? В каком виде интересует результат - содержимое строк или номера строк? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 11:25:38 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
teras На мой взгляд, недостаточно информации о задаче. Упорядоченны ли строки в файлах, или нет? Как быть с одинаковыми строками? Что считать совпадающими строками? В каком виде интересует результат - содержимое строк или номера строк? Posted via ActualForum NNTP Server 1.4 Результат 2 файла. В первом файле строки, которых нет во втором. Во втором файле наоборот. Строки не упорядочены, т.е. позиция строки в первом файле может не совпадать с позицией этой же строки во втором. Совпадающие строки - две одинаковых строки. Одинаковые строки в выходных файлах не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 12:31:49 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 14:37:47 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
А не проще ли создать два листа и загрузить в каждый строки из соответствующих файлов. Затем бежим по первому листу, берем первую строку и ищем ее во втором листе простым перебором. Если находим, та удаляем строку из обоих листов. Затем делаем тоже самое со второй строкой из первого листа и так пока не переберем весь первый лист. Все, что осталось выплевываем в два файла. Для ускорения можно заменить второй лист на мап. Еще более интересный вариант - создать два сета и получть пересечение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 22:36:30 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
Тоесть не пересечение, а то, что останется в сетах, если пересечение из них удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 22:38:35 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
AndreiNz wrote: > А не проще ли создать два листа и загрузить в каждый строки из > соответствующих файлов. Затем бежим по первому листу, берем первую > строку и ищем ее во втором листе простым перебором. Можно сразу отсортировать оба "листа" (qsort, hashsort, и т.д.), и потом поисков придется производить намного меньше (просто надо будет перебрать одновременно оба списка от начала до конца). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2007, 22:50:45 |
|
||
|
сравнение двух файлов txt
|
|||
|---|---|---|---|
|
#18+
> AndreiNz wrote: > > А не проще ли создать два листа и загрузить в каждый строки из > соответствующих файлов. Затем бежим по первому листу, берем первую > строку и ищем ее во втором листе простым перебором. Вообще-то это зависит от перспектив. Тут строк немного, поэтому все пойдет. Если файлы будут расти, то разница во времени станет заметнее, и чем дальше - тем больше. Линейные поиски по несортированному списку - O(n^2), сортировки и слияние - O(2*log(n)+n), хеширование - O(n). Где n - количество строк в обоих файлах. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2007, 08:07:01 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34874494&tid=2027995]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
437ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 786ms |

| 0 / 0 |
