Estoy revisando los algoritmos y las estructuras de datos y tengo algunas preguntas, así como las declaraciones que me gustaría que verifique.Establecer el tiempo y la complejidad de la velocidad
ArrayList - O (1) (tamaño, obtención, configuración, ...), O (n) - add operation.
LinkedList - todas las operaciones O (1) (incluido add()), excepto para recuperar n-ésimo elemento que es O (n). Supongo que la operación size() también se ejecuta en O (1), ¿verdad?
TreeSet - todas las operaciones O (lg (N)). La operación size() toma O (lg (n)), ¿verdad?
HashSet - todas las operaciones O (1) si se aplica la función de hash adecuada.
HashMap - todas las operaciones O (1), anólogas a HashSet.
Cualquier otra explicación es muy bienvenida. Gracias de antemano.
Si usted tiene tal HashSet magia, ¿por qué necesita ArrayList? –
@Stas: Porque una Lista y un Conjunto no son lo mismo, y también porque los factores constantes aún pueden ser significativamente diferentes ... –
@Stas: El orden solo le da una idea de cómo se escala la operación. No le dirá el factor, p. HashSet puede ser mucho más lento que ArrayList y no tiene los métodos get()/set(). –