Antes de responder a la pregunta, supongo que sabes qué es la complejidad del tiempo, porque es una matriz que se utiliza para comparar y medir el tiempo que tarda cualquier proceso en algoritmos. Si no sabes, aprende aquí.
La búsqueda binaria proporciona una complejidad de tiempo mínima (es decir, O (lg n)) buscando un elemento en un conjunto dado de elementos, pero la lista de enlaces no puede beneficiarse de ella ya que la lista de enlaces individualmente no puede atravesar, lo cual es uno de los requisitos de la búsqueda binaria. Aunque puede hacerse posible con algo modificado, la lista de enlaces debe ordenarse.
Entonces, en general, la lista de enlaces (ya sea individual o doblemente) toma una complejidad de tiempo lineal (es decir, O (n)) para buscar el elemento del conjunto.
- ¿Cuál es el mejor algoritmo de extracción de características para comparar dos imágenes?
- Cómo escribir una matriz para un libro de calificaciones que acepte 10 entradas y no requiera usarlas todas
- ¿Cómo funciona la clasificación bayesiana? ¿Cuáles son algunas de sus aplicaciones?
- ¿Cuál es la forma más fácil / intuitiva de aprender sobre algoritmos y estructuras de datos?
- ¿Qué es un código de clasificación?
Aquí está el pseudocódigo para ello. Es mejor implementarlo por su cuenta (requiere conocimiento de punteros en C).
1) Inicialice su puntero al encabezado de la lista. corriente = cabeza
2) Mientras la lista no finaliza, es decir, mientras está actual! = Nulo
2.1) Compare current con el elemento de la lista, si se encuentra coincidencia, devuelva true if (current == key)
2.2) De lo contrario, mueva el puntero actual al siguiente nodo. actual = actual-> siguiente.
3) Si la lista finaliza y la coincidencia no se encuentra, devuelva falso.
Espero que esto ayude.