HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

бинарный поиск
  #1  
Старый 02.02.2010, 23:29
1n0y
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
С нами: 8951426

Репутация: 102
По умолчанию бинарный поиск

собстно решил проапгрейдить поиск в своём удоляторе до бинарного. всё бы нечего, но результаты простого перебора и бинарного поиска заметно отличаются - в объёмных базах бинарный не находит примерно 10% совпадений. wtf?!


вот кусок бинарного:
Код:
//f4, f5 - стринглисты

     f5.sort;
     f4.sort;   
      while I<=f4.Count-1 do
            begin
             verh:=0;
             niz:=f5.count;
             found:=FALSE;
              repeat
               sred:=trunc((niz-verh)/2)+verh;
                 if  AnsiPos(f4.Strings[I],f5.strings[sred])<>0
                  then found:=TRUE
                 else
                  if  f4.Strings[I < f5.strings[sred]
                    then niz:=sred-1
	          else verh:=sred+1;
              until (verh > niz) or found or (verh = f5.count);
            if found
             then
              begin
               form1.Memo6.Lines.Add(f5.Strings[sred]);
               I:=I+1;
              end
            else
             I:=I+1;
          end
естественно, все стринглисты сортирую перед поиском.
вчомпроблема? или это такая фича бинарного поиска?
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт поиска нефильтруемой переменной (SQL injection) Strilo4ka Уязвимости 16 24.12.2009 22:45
Набор парнёров в закрытую спам парнёрку group Разное - Покупка, продажа, обмен 14 21.12.2009 22:58
Куплю фрод group Разное - Покупка, продажа, обмен 11 20.12.2009 21:34



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.