System.Generics.Collections.TList.BinarySearch

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function BinarySearch(const Item: T; out FoundIndex: Integer): Boolean; overload;
function BinarySearch(const Item: T; out FoundIndex: Integer; const AComparer: IComparer<T>): Boolean; overload;
function BinarySearch(const Item: T; out FoundIndex: Integer; const AComparer: IComparer<T>; Index, Count: Integer): Boolean; overload;

C++

bool __fastcall BinarySearch(const T Item, /* out */ int &FoundIndex)/* overload */;
bool __fastcall BinarySearch(const T Item, /* out */ int &FoundIndex, const System::DelphiInterface<System::Generics::Defaults::IComparer__1<T> > AComparer)/* overload */;
bool __fastcall BinarySearch(const T Item, /* out */ int &FoundIndex, const System::DelphiInterface<System::Generics::Defaults::IComparer__1<T> > AComparer, int Index, int Count)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.Generics.Collections.pas
System.Generics.Collections.hpp
System.Generics.Collections TList

Beschreibung

Durchsucht die sortierte Liste per Binärsuche nach dem Element.

Die überladene Methode BinarySearch sucht nach dem Listenelement Item mittels einer Binärsuche. Die Methode gibt true zurück, wenn das Element gefunden wird und ansonsten false. Bei gefundenem Element enthält Index den nullbasierten Index von Item. Bei nicht gefundenem Element enthält Index den Index des ersten Eintrags, der größer als Item ist.

Anmerkung:  Für BinarySearch muss die Liste sortiert sein. Für die Methode IndexOf ist keine sortierte Liste erforderlich, aber sie ist in der Regel langsamer als BinarySearch.

Wenn in der Liste mehrere Elemente gleich Item sind, wird der Index der ersten Übereinstimmung in Index zurückgegeben. Dies ist der Index eines beliebigen übereinstimmenden Elements, nicht notwendigerweise des ersten.

Eine Vergleichsfunktion AComparer kann zum Vergleichen der Elemente bereitgestellt werden.

Wenn sich Item außerhalb des Bereichs der Liste befindet, wird eine EArgumentOutOfRangeException-Exception ausgelöst.

Dies ist eine O(log n)-Operation für eine Liste mit n Einträgen.

Siehe auch

Codebeispiele