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

2025 год. Фирма Microsoft представляет собой корпорацию-государство. Билл Гейтс удалился в мир иной, на собрании акционеров выступает новый глава корпорации Вольдемар В. Жириновский:
- Вас обманывают эти подонки из INTEL, в процессоре UltraProPentiumMMX&MCMIX-4 содержатся ошибки, масоны захватили Internet, от работы с "мышью" прогрессирует геморрой, но самое главное - в 1 гигабайте не 1024, а 1023 мегабайта!


function FoundByBinarySearch(
  LowIdx,
  HighIdx: LongInt;
  var Result: LongInt;
  const GoalIs: CompareFunc;
  var Data;
  var Goal
  ): Boolean;
var
  CompVal: CompareResults;
begin
  FoundByBinarySearch := FALSE;

  if HighIdx < LowIdx then
    Exit;

  Result := LowIdx + ((HighIdx - LowIdx) div 2);
  CompVal := GoalIs(Result, Data, Goal);

  if CompVal = BinEqual then
    FoundByBinarySearch := TRUE
  else if (LowIdx < HighIdx) then
  begin
    if CompVal = BinLess then
      HighIdx := Result - 1
    else {CompVal = BinGreater}
      LowIdx := Result + 1;
    FoundByBinarySearch := FoundByBinarySearch(
      LowIdx, HighIdx, Result, GoalIs, Data, Goal)
  end
  else if (CompVal = BinLess) then
    Dec(Result)
end; { function FoundByBinarySearch }

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования