-2
votes

Comment la recherche binaire est-elle plus rapide que la recherche linéaire?

Nous avons besoin d'une matrice triée pour effectuer une recherche binaire. Dans ce cas, la complexité temporelle est déjà supérieure à la recherche linéaire, donc la recherche linéaire n'est pas une meilleure option dans ce cas?


4 commentaires

Si vous devez trier une fois, recherchez de nombreuses reprises, le coût du tri est amorti sur de nombreuses recherches.


Parce que le tri ne fait pas partie de la recherche binaire, mais une exigence de données. Donc, pour une recherche simple + une recherche binaire peut-être plus lente qu'une recherche linéaire mais qu'une histoire différente de la comparaison d'une recherche avec une autre.


Un ami mathématicien m'a déjà dit "Eh bien, loger n est effectivement une constante pour le grand n!" En d'autres termes, o (n log n) n'est pas beaucoup pire que O (n) de manière pratique pour une seule recherche, ce qui rend la couverture à la nécessité de faire plusieurs recherches supplémentaires.


Notez que "trié" est une propriété des éléments et n'implique pas que la matrice a été triée. Par exemple int A [] = {1,2,3,4,5}; définit un tableau trié.


4 Réponses :


1
votes

Une recherche linéaire fonctionne dans O (n) heure, car elle analyse la matrice de début à la fin.

D'autre part, une recherche binaire trie d'abord la matrice dans O (nlogn) heure (s'il n'est pas déjà trié), puis effectue des recherches dans O (logn) TIME.

Pour un petit nombre de recherches, l'utilisation d'une recherche linéaire serait plus rapide que d'utiliser une recherche binaire. Cependant, chaque fois que le nombre de recherches est supérieur à logn , la recherche binaire aura la main dans la performance.

Alors, la réponse à votre question est la suivante: la recherche linéaire et la recherche binaire effectuent des recherches de différentes manières. La recherche linéaire analyse à travers l'ensemble de la matrice, tandis que la recherche binaire trie le tableau en premier. Ces deux techniques de recherche ont complexités de temps différente , mais cela ne signifie pas que l'un toujours sera meilleur que l'autre.

Plus précisément, la recherche linéaire fonctionne bien lorsque la taille de la liste est petite et / ou si vous n'avez besoin que d'effectuer un petit nombre de recherches. La recherche binaire devrait mieux fonctionner dans toutes les autres situations.


0 commentaires

1
votes

Ce sera mieux si votre conteneur est déjà trié ou si vous souhaitez rechercher de nombreuses valeurs.


0 commentaires

0
votes

La recherche binaire est plus rapide que linéaire lorsque le tableau donné est déjà trié.

Pour une matrice triée, la recherche binaire offre une moyenne O (journal de journalisation) quant aux offres linéaires O (N).

Pour tout tableau donné qui n'est pas trié, la recherche linéaire devient la meilleure depuis que O (n) est meilleur que le tri de la matrice (à l'aide de QuicksTort par exemple O (n journal n)), puis appliquant une recherche binaire après cela, ainsi donné (N LOG N + LOGN) Complexité.


1 commentaires

En fait, si ce n'est que des entiers, vous pouvez faire de la radiocsort qui est O (D * K) qui est similaire dans la complexité de la recherche linéaire.



1
votes

Tout d'abord pour la recherche binaire La condition préalable est que la matrice est triée, ce qui signifie que vous n'avez pas besoin de le recourir. Deuxièmement, si vous parlez de tableaux entier, vous pouvez utiliser RADIXSORT O (D * N) ou comté d'O (N + L), similaire à la recherche linéaire en termes de complexité ...


0 commentaires