¿Cuál es la complejidad temporal de una búsqueda de una matriz asociativa (diccionario) en Python? ¿Cómo crece la velocidad de búsqueda con el número de pares clave-valor?

Es O (1) en promedio, no importa cuántos elementos se coloquen allí … porque es un diccionario. Esa es la razón por la cual se inventó una estructura de datos del diccionario. Ninguna otra estructura tiene esta propiedad, una matriz o una lista vinculada sería O (N) en promedio, un árbol de búsqueda binario O (log N), y todo lo demás se ubica entre esos 2, o incluso peor cuando la clasificación entra en la mezcla. comienza a convertirse en O (N log N) en el mejor de los casos o incluso O (N ^ 2) para insertar.
TimeComplexity – Python Wiki

Es uno de los aspectos que Python esconde porque ya está implementado para usted. Y eso está bien, aunque necesita saber estas cosas solo para saber por qué usaría una estructura de datos en lugar de otra.

Entonces, mi consejo sobre este aspecto en particular: descubra todo lo que pueda sobre hash y tablas de hash (también conocidos como diccionarios / matrices de búsqueda / matrices asociativas / mapas). También tenga en cuenta que no son balas de plata, tienen sus fallas. Aún mejor, intente implementar uno utilizando solo matrices de Python.

Mi consejo en general (y para referencia futura): aprenda otro idioma también para enseñarle conceptos que se le ocultan en Python. Python te dio la capacidad de programar, y eso es genial, pero no es suficiente; debes ir más allá, nunca llegarás a ser “promedio”. Usar solo Python para enseñarle programación solo lo llevará hasta cierto punto: necesitará algo más para convertirse en un programador experto en lugar de simplemente otro codificador que solo puede escribir Python de nivel promedio.

La maravilla de un diccionario de Python es que, en promedio, la velocidad de búsqueda no crece con el número de pares clave-valor en el diccionario. Por lo tanto, la complejidad del tiempo es O (1). Para obtener más referencias sobre cómo se logra esto, consulte: Implementación del diccionario.

Es O (1) para el promedio y O (n) para el peor caso amortizado. Ver http://wiki.python.org/moin/Time … para esta y otras estructuras de datos.

More Interesting

¿Cuáles son las mejores universidades para estudiar informática de alto rendimiento?

¿Qué hubiera pasado si MP3 no hubiera tenido éxito?

Cómo usar scikit-learn para el pronóstico de datos (problema de regresión)

¿Cuáles son algunos problemas que actualmente no se pueden resolver en el campo de la visión por computadora?

¿Cómo se utilizan las técnicas de aprendizaje automático en el comercio?

¿Es cierto que un título en informática es útil solo si puedo ingresar a una universidad superior como MIT o Stanford, y es mejor ser un desarrollador autodidacta en lugar de estudiar en una universidad mala?

¿Por qué se le da tanta importancia al aprendizaje automático?

¿Qué es una tienda distribuida de valor-clave? ¿Cuál fue la motivación para diseñarlo en primer lugar?

Escritores y autores: ¿Cuáles son sus situaciones típicas al obtener nuevas ideas o un mensaje "clics" en la mente?

Cómo abordar los problemas en SPOJ (lea los detalles)

¿Cuál es más confiable? ¿HFS de Apple o EXT4 de Linux? ¿Cuáles son las fortalezas y debilidades de cada sistema de archivos?

¿Qué problemas prácticos puede resolver el aprendizaje profundo que el aprendizaje automático no puede resolver?

¿Cuál es la optimización de Knuth en la programación dinámica?

¿Cuál es la diferencia entre hosts virtuales y servidores virtuales?

Solo hay tantos componentes que puede meter en un chip de computadora. ¿Se ha alcanzado el límite o hay otra forma de hacer una computadora?