2009-08-13 12 views
21

¿Alguien me puede dar referencias de un sitio web que contiene un resumen de las principales estructuras de datos de Java y su respectiva complejidad en el tiempo (para algunas operaciones determinadas como agregar, encontrar, eliminar), p. Ej. Hashtable s son O (1) para encontrar, mientras que LinkedList s son O (n). Algunos detalles como el uso de la memoria también serían agradables.Java Data Structures Reference

Esto sería realmente útil para pensar en estructuras de datos para algoritmos.

+1

Aparte de los Javadocs? –

+1

Sí, los documentos Java los tienen todos separados, y la complejidad no es realmente fácil de encontrar. No quiero detalles de cada uno, solo un resumen con complejidades de tiempo –

Respuesta

23

¿Hay alguna razón para pensar que la aplicación de Java es diferente (en términos de complejidad) que un lenguaje agnóstico implementación genérica,? En otras palabras, ¿por qué no hacer referencia a una referencia general de la complejidad de las diversas estructuras de datos:

NIST Dictionary of Algorithms and Data Structures

Pero, si usted insiste en Java específico:

Java standard data structures Big O notation

Java Collections cheatsheet V2 (enlace muerto, pero this is the first version of the cheatsheet)

+4

gracias por http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-big -o-notation/ –

+0

Dos de esos enlaces están muertos. Lo editaría, pero tendría que cambiar el significado de tu publicación. – Daniel

+0

He actualizado un enlace ahora – bluish

0

No creo que haya ningún sitio web que lo describa (aunque parece una buena idea para un proyecto). Creo que parte del problema es que es muy importante comprender cómo se ejecutan cada uno de los algoritmos. En su mayor parte, parece que entiendes Big-O, así que lo usaría como tus mejores suposiciones. Haga un seguimiento con algunos benchmarking/perfiling para ver qué se ejecuta más rápido/más lento.

Y, sí, el Java docs debería tener mucha de esta información en java.util.

0

Las complejidades de tiempo y espacio para las principales clases de recopilación deberían corresponder a estructuras de datos xity. No creo que haya nada específico de Java al respecto, p. (como dices) la búsqueda hash debe ser O (1). Puede mirar here o here.