Usando una combinación de una tabla hash ([matemática] O (1) [/ matemática] inserción y eliminación en promedio) y una matriz ([matemática] O (1) [/ matemática] acceso aleatorio).
Inserción: Agregue x al final de su matriz. Hash x => longitud (matriz) -1
Eliminación: esto es más complicado. Obtenga el valor de x del hash, que se estableció en su índice en la matriz. Cambie el valor en ese índice en la matriz con el último. Eliminar el último elemento en la matriz. Eliminar x del hash.
- ¿Qué algoritmos de aprendizaje automático se usan hoy en medicina?
- ¿Cuál es la diferencia entre hashing y encriptación?
- ¿Cuáles son algunas situaciones en las que conceptos algorítmicos como la complejidad del código y la programación dinámica dieron como resultado un mejor código en un proyecto de desarrollo real?
- ¿Hay algún tipo de estrategias para resolver problemas en estática?
- Mis ubicaciones están por venir, así que he estado implementando estructuras de datos y algoritmos en Python, pero llegué a saber que muchas empresas no tienen Python instalado en sus estaciones de trabajo. ¿Es verdad? Y si es así, ¿estaría bien cambiar de Python a Java, que no recuerdo mucho?
Aleatorio: la matriz le indicará su longitud, n. Elija un int [math] [0, n) [/ math] aleatorio y acceda al elemento de matriz correspondiente.
Todas las operaciones mencionadas (agregar a la matriz, poner hash, obtener hash, intercambiar matrices, eliminar matriz al final, eliminar de hash, longitud de la matriz, acceso a la matriz) son, en promedio, de tiempo constante.
Sin embargo, recuerde que las colisiones de hash son [matemáticas] O (n) [/ matemáticas] en el peor de los casos.