BinarySearchRange(
Value: Variant;
Comparer: IComparer;
Index: Integer;
Count: Integer): Integer;
Value. Значение, которое необходимо найти;
Comparer. Объект, осуществляющий сравнение элементов массива;
Index. Начальный индекс диапазона, в котором будет производиться поиск;
Count. Количество элементов, среди которых будет производиться поиск.
Метод BinarySearchRange осуществляет двоичный поиск элемента в диапазоне массива.
Поиск осуществляется в отсортированном диапазоне массива. В случае удачного поиска возвращает номер первого найденного элемента, иначе «-1».
Sub UserProc;
Var
ArrayL: IArrayList;
i: Integer;
Begin
ArrayL := New ArrayList.Create;
For i := 0 To 100 Do
ArrayL.Add(Math.RandBetweenI(0, 50));
End For;
ArrayL.Sort(Comparer.IntegerComparer);
i := ArrayL.BinarySearchRange(5, Comparer.IntegerComparer, 10, ArrayL.Count - 20);
End Sub UserProc;
После выполнения примера будет сгенерирован динамический массив случайных чисел. В средней части массива, за исключением первых и последних 10 элементов, будет осуществлен поиск значения «5». В случае удачного поиска в переменной «i» будет содержаться номер первого найденного элемента.
См. также: