Бинарный поиск в упорядоченном массиве

Описание

Функция осуществляет поиск вхождения числа Key в массив A в указанных границах Lb..Ub, в результате функция выдает номер элемента. В случае, если число Key не встречается в массиве A, результат функции равен -1.

Примечание:

Индекс массива начинается с нуля!

Пример

Function BinarySearch (A: Array of integer; Lb, Ub, Key: integer): integer;
var M: integer;
begin
  BinarySearch := -1;
  repeat
    M := (Lb + Ub) div 2;
    if (Key < A[M]) then
      Ub := M - 1
    else if (Key > A[M]) then
      Lb := M + 1
    else
    begin
      BinarySearch := M;
      exit;
    end;
  until Lb > Ub;
end;
 
const X: array[0..4] of integer = (2,5,6,8,9);
var n: integer;
begin
     write('Enter number to search: '); readln(n);
     writeln(BinarySearch (X,0,4,n));
end.
 
pascal/search/binary.txt · Последние изменения: 2009/10/30 20:54 От romtek
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki