Вниз
Скачать: CL | DM;

алгоритм поиска дублирующих строк в файле   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-1196253404
Elec3C
2007-11-28 15:36
2008.08.10
Приоритет программ через CreateProcess


8-1183726658
Sonic90
2007-07-06 16:57
2008.08.10
Версия MP3 тегов


2-1215450480
Pasha L
2008-07-07 21:08
2008.08.10
ScrollBar.Position:=n без вызова OnChange


2-1215602817
@!!ex
2008-07-09 15:26
2008.08.10
Как узнать количество экземпляров класса?


2-1215538895
Fresh
2008-07-08 21:41
2008.08.10
Нормальный Transparent в Image???




   Наверх