Matriz asociativa


En informática , una matriz asociativa , mapa , tabla de símbolos o diccionario es un tipo de datos abstracto compuesto por una colección de pares (clave, valor) , de modo que cada clave posible aparece como máximo una vez en la colección. No confundir con procesadores asociativos

La implementación de matrices asociativas plantea el problema del diccionario , un problema clásico de la informática: la tarea de diseñar una estructura de datos que mantenga un conjunto de datos durante las operaciones de "búsqueda", "eliminación" e "inserción". [3] Las dos soluciones principales al problema del diccionario son una tabla hash y un árbol de búsqueda . [1] [2] [4] [5] En algunos casos, también es posible resolver el problema utilizando matrices direccionadas directamente , árboles de búsqueda binaria u otras estructuras más especializadas.

Muchos lenguajes de programación incluyen matrices asociativas como tipos de datos primitivos y están disponibles en bibliotecas de software para muchos otros. La memoria direccionable por contenido es una forma de soporte directo a nivel de hardware para matrices asociativas.

Las matrices asociativas tienen muchas aplicaciones, incluidos patrones de programación fundamentales como la memorización y el patrón decorador . [6]

El nombre no proviene de la propiedad asociativa conocida en matemáticas. Más bien, surge del hecho de que asociamos valores con claves.

En una matriz asociativa, la asociación entre una clave y un valor se conoce a menudo como un "mapeo", y el mismo mapeo de palabras también puede usarse para referirse al proceso de creación de una nueva asociación.


Este gráfico compara el número medio de fallos de caché de CPU necesarios para buscar elementos en tablas hash grandes (que superan con creces el tamaño de la caché) con el encadenamiento y el sondeo lineal . El sondeo lineal funciona mejor debido a una mejor localidad de referencia , aunque a medida que la tabla se llena, su rendimiento se degrada drásticamente.