Недавно добавленные исходники

•  Animation Loaders  708

•  DeLiKaTeS Tetris (Тетрис)  5 711

•  TDictionary Custom Sort  7 664

•  Fast Watermark Sources  7 352

•  3D Designer  10 564

•  Sik Screen Capture  7 880

•  Patch Maker  8 107

•  Айболит (remote control)  8 160

•  ListBox Drag & Drop  6 957

•  Доска для игры Реверси  100 193

•  Графические эффекты  8 228

•  Рисование по маске  7 619

•  Перетаскивание изображений  6 221

•  Canvas Drawing  6 586

•  Рисование Луны  6 515

•  Поворот изображения  5 686

•  Рисование стержней  4 610

•  Paint on Shape  3 308

•  Генератор кроссвордов  4 297

•  Головоломка Paletto  3 441

•  Теорема Монжа об окружностях  4 261

•  Пазл Numbrix  2 759

•  Заборы и коммивояжеры  3 669

•  Игра HIP  2 471

•  Игра Go (Го)  2 460

•  Симулятор лифта  2 864

•  Программа укладки плитки  2 297

•  Генератор лабиринта  3 024

•  Проверка числового ввода  2 524

•  HEX View  2 937

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Бинарный поиск в целочисленном массиве



Автор: Mystic

{ **** 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;




Похожие по теме исходники

Поисковик

Поиск символа

Поиск файлов

Поиск открытых файлов

 

Findup (поиск дублей)

Дейкстра: поиск кратчайшего пути




Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте