Maison > Problème commun > Complexité temporelle de la technique de recherche binaire

Complexité temporelle de la technique de recherche binaire

(*-*)浩
Libérer: 2019-10-25 10:13:01
original
12923 Les gens l'ont consulté

La méthode de recherche binaire, qui utilise pleinement la relation d'ordre entre les éléments et adopte la stratégie diviser pour régner, peut terminer la tâche de recherche en O(log n) dans le pire des cas.

Complexité temporelle de la technique de recherche binaire

L'idée de base est de diviser n éléments en deux moitiés avec à peu près le même nombre, et de prendre un[n/2] et le nombre que vous vouloir trouver x est comparé Si x=a[n/2], x est trouvé et l’opération de l’algorithme se termine. (Apprentissage recommandé : Tutoriel vidéo Web front-end)

En informatique, la recherche binaire (anglais : recherche binaire), également connue sous le nom de recherche à demi-intervalle (anglais : demi-intervalle -recherche par intervalle) , La recherche logarithmique (anglais : recherche logarithmique) est un algorithme de recherche permettant de trouver un élément spécifique dans un tableau ordonné.

Le processus de recherche commence à partir de l'élément du milieu du tableau. Si l'élément du milieu se trouve être l'élément à trouver, le processus de recherche se termine si un élément spécifique est supérieur ou inférieur à l'élément du milieu, le processus de recherche se termine lorsque le tableau est supérieur ou inférieur à l'élément du milieu. Recherchez dans cette moitié et démarrez la comparaison à partir de l'élément du milieu comme auparavant.

Si le tableau est vide à une certaine étape, cela signifie qu'il est introuvable. Cet algorithme de recherche réduit la plage de recherche de moitié à chaque comparaison.

Si xa[n/2], alors il suffit de continuer à chercher x dans la moitié droite du tableau a.

La méthode de recherche binaire est extrêmement largement utilisée et son idée est facile à comprendre, mais écrire un algorithme de recherche binaire correct n'est pas une tâche facile. Le premier algorithme de recherche binaire est apparu dès 1946, mais le premier algorithme de recherche binaire complètement correct n'est apparu qu'en 1962.

Bentley a écrit dans son livre "Writing Correct Programs" que 90 % des experts en informatique ne peuvent pas écrire un algorithme de recherche binaire complètement correct en 2 heures.

La clé du problème est de formuler avec précision les limites de chaque plage de recherche et de déterminer les conditions de terminaison, et de résumer correctement les différentes situations de nombres impairs et pairs. En fait, après l'avoir trié, nous pouvons trouver. que son algorithme spécifique est très intuitif.

Calcul de la complexité

Complexité temporelle : La recherche binaire coupe la zone de recherche de moitié à chaque fois, et il est évident que la complexité temporelle est O(log n). (n représente le nombre d'éléments dans l'ensemble)

Complexité spatiale : O(1). Bien que défini sous forme récursive, il est récursif en queue et peut être réécrit sous forme de boucle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal