que, en general, puede depender de la descripción de n, de la descripción de la meta, de la información recopilada por la búsqueda hasta ese momento y, sobre todo, de cualquier conocimiento adicional sobre el dominio del problema”[1][2].
Algunos autores han utilizado el término “búsqueda del mejor primero” para referirse específicamente a una búsqueda con una heurística que intenta predecir lo cerca que está el final de un camino de una solución (o, meta), de modo que los caminos que se consideran más cercanos a una solución (o, meta) se extienden primero. Este tipo específico de búsqueda se denomina búsqueda codiciosa del mejor primero[2] o búsqueda heurística pura[3].
El algoritmo de búsqueda A* es un ejemplo de algoritmo de búsqueda del mejor primero, al igual que B*. Los algoritmos del mejor primero se utilizan a menudo para encontrar caminos en la búsqueda combinatoria. Ni A* ni B* son una búsqueda codiciosa del mejor primero, ya que incorporan la distancia desde el inicio además de las distancias estimadas a la meta.
A continuación se muestra un ejemplo de pseudocódigo de este algoritmo, en el que la cola representa una cola de prioridad que ordena los nodos en función de sus distancias heurísticas a la meta. Esta implementación mantiene un registro de los nodos visitados, y por lo tanto puede ser utilizada para grafos no dirigidos. Se puede modificar para recuperar el camino.
Aquí, para un elemento dado, digamos a[i], tenemos que recorrer toda la estructura de datos hasta encontrar el elemento, por lo que en el peor de los casos tenemos que recorrer hasta el final del DS y por lo tanto el orden/complejidad de la búsqueda lineal es O(n)
La búsqueda binaria implementa el algoritmo “divide y vencerás” para buscar un elemento requerido en la estructura de datos. Pero para hacer una búsqueda binaria en la estructura de datos (DS), los elementos del DS deben estar ordenados. (ver los mejores algoritmos de ordenación)
el logaritmo es sólo una escala matemática para representar el sistema de números en potencias de base, en el caso de la búsqueda binaria, base=2 (porque cada vez que dividimos el DS por dos de una manera también implica aumentar la potencia por 2 de otra manera)
Este artículo se centra demasiado en ejemplos específicos sin explicar su importancia para su tema principal. Por favor, ayude a mejorar este artículo citando fuentes secundarias y fiables que evalúen y sinteticen estos ejemplos u otros similares dentro de un contexto más amplio. (Diciembre de 2014)
Este artículo necesita citas adicionales para su verificación. Por favor, ayude a mejorar este artículo añadiendo citas de fuentes fiables. El material sin fuente puede ser cuestionado y eliminado.Buscar fuentes: “Algoritmo de búsqueda” – noticias – periódicos – libros – scholar – JSTOR (abril de 2016) (Aprende cómo y cuándo eliminar este mensaje de la plantilla)
En informática, un algoritmo de búsqueda es un algoritmo (si hay más de uno, algoritmos[1]) diseñado para resolver un problema de búsqueda. Los algoritmos de búsqueda trabajan para recuperar información almacenada en una estructura de datos concreta, o calculada en el espacio de búsqueda de un dominio de problemas, con valores discretos o continuos.
Aunque los problemas de búsqueda descritos anteriormente y la búsqueda en la web son ambos problemas de recuperación de información, generalmente se estudian como subcampos separados y se resuelven y evalúan de forma diferente. Los problemas de búsqueda en la web suelen centrarse en filtrar y encontrar documentos altamente relevantes para las consultas humanas. Los algoritmos de búsqueda clásicos se evalúan en función de la rapidez con la que encuentran una solución y de si la solución encontrada es óptima. Aunque los algoritmos de recuperación de información deben ser rápidos, es más importante la calidad de la clasificación y si se han dejado de lado los buenos resultados y se han incluido los malos.
ResumenHemos aprendido diferentes tipos de algoritmos como los de ordenación, búsqueda y graficación, y es probable que haya muchos algoritmos posibles que realicen la misma tarea. La pregunta es, si queremos buscar un valor en la lista, ¿qué tipo de algoritmo de búsqueda debemos elegir? Mediante el análisis de varios algoritmos, estudiaremos esta cuestión en este capítulo.
En: Data Structures and Algorithms in Swift. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-5769-2_17Download citationShare this chapterAnyone you share the following link with will be able to read this content:Get shareable linkSorry, a shareable link is not currently available for this article.Copy to clipboard