Форум: "Начинающим";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];
Внизалгоритм поиска дублирующих строк в файле Найти похожие ветки
← →
max (2008-07-10 15:00) [0]Добрый день, уважаемые форумчане!
Помогите, пожалуйста, ускорить алгоритм поиска дублирующих
значений в файле.
Есть два файла. Вкаждом порядка 200000 строк. Используя ниже приведенный код на поиск уходит очень много времени.
while not EOF(f1) do
begin
ReadLn(f1,line1);
Reset(f2);
while not EOF(f2) do
begin
ReadLn(f2, line2);
if line1=line2 then writeln(f_r, line1);
end;
end;
← →
tesseract © (2008-07-10 15:22) [1]ну ещё бы, он не тормозил. Надо строить самоупорядочивающиеся хэши строк, потом алгоритм сравнения. За сим отправляю к Кнуту и Бакнелу, ибо это страниц 30-40 разъеснений.
← →
Сергей М. © (2008-07-10 16:04) [2]А каков результат примерной оценки количества уникальных строк в результирующем списке ?
Я к тому что возможно приспособить под это дело TStringList, если оценка внушает оптимизм)
← →
Ega23 © (2008-07-10 16:25) [3]
> возможно приспособить под это дело TStringList
на 200000 строк?
Хотя может и не будет тормозить...
← →
Rouse_ © (2008-07-10 16:26) [4]вот тут я что-то в свое время писал для чего-то, мошт пригодится:
http://rouse.drkb.ru/files/dict.zip
← →
Игорь Шевченко © (2008-07-10 16:37) [5]
> Помогите, пожалуйста, ускорить алгоритм поиска дублирующих
> значений в файле.
есть замечательная программа diff с иходниками. Именно для этого предназначена. Работает довольно быстро. Исходники на С можно найти в интернете (и не одни)
← →
Сергей М. © (2008-07-10 17:51) [6]
> Ega23 © (10.07.08 16:25) [3]
Имелась ввиду загрузка в TStringList результата, а не оригинала ..
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c