Diferencia entre un HashMap y una matriz en tiempo de complejidad de una búsqueda

David:

Si tengo que saber la clave para obtener el valor en un mapa hash (por tiempo de complejidad O (1)), ¿por qué es diferente de obtener un valor dentro de una gama al conocer el índice (O (1) también)?

En otras palabras, un HashMap se considera que tiene O (1) la complejidad para una búsqueda, pero esto es porque se conoce la clave. Este es el mismo con una gran variedad cuando se conoce el índice - si yo no sé el índice sería O (n), que es el mismo que no saber la llave y entonces es O (n) para el HashMap, así (containsValue (valor Object) método).

Por lo tanto, no entiendo por qué un HashMap se considera que es más eficiente para las búsquedas.

Abhishek Garg:

Creo que una buena manera de entender esto es mediante el uso de un caso de uso real. Digamos que usted desea almacenar un nombre del estudiante y sus marcas.

Así que hay 2 campos.

String name
Integer marks 

Ahora desea para buscar las marcas basadas en el nombre del estudiante.

En la forma de matriz, será la creación de una clase que posee tanto la información y los puso en una matriz.

Ahora para comprobar las marcas de un nombre del estudiante, ya sea que usted necesita iterar toda la matriz o lo que necesita saber que lo que el índice se almacena un nombre en particular. Ambos son O (N) la complejidad.

O se puede almacenar en un mapa con la clave como el nombre y valor como marcas . Usted puede buscar en el mapa por su nombre en O (1) la complejidad.

TL; DR; Usted necesita ver a su usecase y luego decidir si se puede trabajar con matrices (de búsqueda basado en índice ordenado) o que realmente necesita un mapa para las operaciones de búsqueda.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=230899&siteId=1
Recomendado
Clasificación