Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 00:43   #1
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию Рекурсивной бинарный поиск

Немогу сделать рекурсию для бинарного поиска. У меня задан текстовый отсортированый массив, мне надо сделать функцию для бинарного поиска славо. Вот что то пробывал делать, помогите мне розобратся как ее сделать.

Код:
function BeeFind(s1:array of string; x1:string; a,b:integer):string;
//s1 - массив, x1 - искомое слова 
var c:integer;
begin
  c:=(a+b) div 2;
  if x=s1[c] then BeeFind:=x;
  if x<s1[c] then BeeFind:=BeeFind(s1,x,c,b) else BeeFind:=BeeFind(s1,x,a,c);
end;
Stranger333 вне форума Ответить с цитированием
Старый 07.05.2010, 11:36   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Вот так как-то...
Вложения
Тип файла: rar BFIND.rar (182.5 Кб, 30 просмотров)
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 07.05.2010, 18:56   #3
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Код:
string[] array = { "a", "b", "c", "d", "e", "f" };
int index = Array.BinarySearch(array, "d");
akasex вне форума Ответить с цитированием
Старый 07.05.2010, 19:10   #4
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Код:
function BinarySearch(words: array of string; word:string; l:integer; h:integer):integer;
 begin
    while (StrIComp(pchar(word),pchar(words[(l+h)div 2]))<>0)and(l<>h) do
      begin
         if strIcomp(pchar(word),pchar(words[(l+h)div 2]))>0 then
            l:=(l+h)div 2+1
          else
            h:=(l+h)div 2-1;
      end;
    if l<>h then
     BinarySearch:=(l+h)div 2
    else
     BinarySearch:=0;
 end;
akasex вне форума Ответить с цитированием
Старый 07.05.2010, 20:48   #5
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

спасибо всем большое за помощь
Stranger333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарный поиск в Delphi Алексей777911 Помощь студентам 8 03.02.2011 18:00
Бинарный поиск 0IceCube0 Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2010 15:52
Бинарный поиск (Паскаль) Zhanna5006 Помощь студентам 3 07.01.2010 09:52
Бинарный поиск Gendalf Помощь студентам 1 07.07.2007 22:09