Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Бинарный поиск в целочисленном массиве

Автор: Mystic
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Бинарный поиск

Бинарный поиск в целочисленном массиве - шаблон для функции,
выполняющей бинарный поиск.
X - значение, которое ищеться
A - массив в котором происходит поиск.
возвращаемое значение
индекс элемента, начиная с которого значения в массиве превышают заданное значение
в случае точного поиска заменить строку Result := L и -1 будет свидетельствовать
о том, что значение не найдено.

Зависимости: System
Автор:       Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков
Copyright:   Mystic
Дата:        25 апреля 2002 г.
***************************************************** }

function BinaryFind(X: Integer; A: array of Integer): Integer;

  function RecurceFind(L, R: Integer): Integer;
  var
    M: Integer;
  begin
    if R < L then
    begin
      Result := L; // Result := -1 если поиск точный
      Exit;
    end;
    M := (L + R) div 2;
    if A[M] = X then
    begin
      Result := M;
      Exit;
    end;
    if A[M] > X then
      Result := RecurceFind(L, M - 1)
    else
      Result := RecurceFind(M + 1, R)
  end;

begin
  Result := RecurceFind(Low(A), High(A));
end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay