Binary_search - C Référence

Test si la valeur existe dans la séquence triée

Renvoie true si un élément dans l'intervalle [premier, dernier) équivaut à val. et faux autrement.

Les éléments sont comparés en utilisant l'opérateur< for the first version, and comp for the second. Two elements, a and b are considered equivalent if (!(a

Les éléments de la gamme sont déjà triés en fonction de ce même critère (opérateur< or comp ), or at least partitioned with respect to val .

La fonction permet d'optimiser le nombre de comparaisons effectuées en comparant des éléments non-consécutifs de l'intervalle de classement, ce qui est spécialement efficace pour les itérateurs à accès aléatoire.

Le comportement de ce modèle de fonction est équivalente à:

Paramètres

d'abord, bout à terme itérateurs aux positions initiale et finale d'une séquence triée (ou bien partitionné). La gamme est utilisé [premier, dernier). qui contient tous les éléments entre la première et la dernière. y compris l'élément pointé par la première mais pas l'élément pointé par le dernier.
val valeur à rechercher dans la gamme.
Pour 1). T est un type de support étant comparé avec des éléments de l'intervalle [first, last) comme l'un des opérandes de l'opérateur<. comp Binary function that accepts two arguments of the type pointed by ForwardIterator (and of type T ), and returns a value convertible to bool. The value returned indicates whether the first argument is considered to go before the second.
La fonction ne doit pas modifier l'un de ses arguments.
Cela peut être un pointeur de fonction ou un objet de fonction.

Valeur de retour

true si un élément équivalent à val se trouve, et false sinon.

Complexité

En moyenne, logarithmique de la distance entre le premier et le dernier. Exécute environ log2 (N) +2 comparaisons d'éléments (où N est cette distance).
Sur itérateurs non-accès aléatoire. les avances de iterator produisent eux-mêmes une complexité linéaire supplémentaire N en moyenne.

courses de données

Les objets dans l'intervalle [first, last) sont accessibles.

Des exceptions

Valeur émise si soit une comparaison de l'élément ou d'une opération sur un itérateur jette.
Notez que les arguments non valides provoquent un comportement non défini.

trouver Trouvez valeur dans la gamme (modèle de fonction) lower_bound Retour itérateur borne inférieure (modèle de fonction) UPPER_BOUND Retour à iterator borne supérieure (modèle de fonction) equal_range Obtenir subrange d'éléments égaux (modèle de fonction)

Articles Liés