TABLAS HASH Utilización de Object para los elementos Función matemática obtención índices  Gestionar las colisiones en la tabla hash Implementación de colisiones en tabla Resolución de problemas básicos en el diseño y utilización tablas hash
Garantizamos la genericidad de la estructura de datos Almacenamiento de cualquier tipo variado de elementos (compareTo / equalsTo) Obliga a realizar cast en las clases  métodos que la utilicen. Utilización de Object para los elementos
Función matemática obtención índices I Necesidad de  garantizar índices únicos . Utilización de función que genere índices a partir de String (Horner?). Resolución de colisiones y sinónimos Mismo índice para claves distinta Elementos distintos generan misma clave Problemas ante claves muy pequeñas.
Función matemática obtención índices II Ante problemas anteriores: Definir adecuadamente tamaño Tabla Hash (B) Si previsión número elementos n.  B=1º primo siguiente a 2*n.  Si no previsión, método para restructurar Tabla cuando FC>0.5 Genera colisiones para B=27 y n=14 ¡¡¡¡¡¡¡¡¡¡ ¿Cómo enfrentar claves pequeñas, 1,2,3…
Función matemática obtención índices III HORNER  Genera, ante claves únicas, índices duplicados. ORLANDO   Garantiza, ante claves únicas, en rango 0-2n índices únicos !!!!!  Para B=2*n  y primo.
Gestionar las colisiones en la tabla hash Mecanismos diversos de gestión colisiones en dispersión cerrada: Exploración Lineal Exploración cuadrática (Elegida) Dispersión doble  Si colisión, implementar compareTo en búsquedas y borrados. Inserciones null Ninguno garantiza 100% éxito en solucionar colisión. Necesidad de FC<0.5 Si FC>0.5 Restructuración dinámica.
Implementación de colisiones en tabla Recibir en función de dispersion, clave y elemento para compareTo (Garantía en caso de colisiones) Discriminar proceso entre: Inserción Búsqueda Borrado  Si colisión en caso de inserción (celda distinta de null) buscar i^2 (índice obtenido función) hasta encontrar celda vacía. En proceso búsqueda y borrado, utilizar compareTo para garantizar no colisión.

Orlando Prada Grupo 15/16h

  • 1.
    TABLAS HASH Utilizaciónde Object para los elementos Función matemática obtención índices Gestionar las colisiones en la tabla hash Implementación de colisiones en tabla Resolución de problemas básicos en el diseño y utilización tablas hash
  • 2.
    Garantizamos la genericidadde la estructura de datos Almacenamiento de cualquier tipo variado de elementos (compareTo / equalsTo) Obliga a realizar cast en las clases métodos que la utilicen. Utilización de Object para los elementos
  • 3.
    Función matemática obtencióníndices I Necesidad de garantizar índices únicos . Utilización de función que genere índices a partir de String (Horner?). Resolución de colisiones y sinónimos Mismo índice para claves distinta Elementos distintos generan misma clave Problemas ante claves muy pequeñas.
  • 4.
    Función matemática obtencióníndices II Ante problemas anteriores: Definir adecuadamente tamaño Tabla Hash (B) Si previsión número elementos n. B=1º primo siguiente a 2*n. Si no previsión, método para restructurar Tabla cuando FC>0.5 Genera colisiones para B=27 y n=14 ¡¡¡¡¡¡¡¡¡¡ ¿Cómo enfrentar claves pequeñas, 1,2,3…
  • 5.
    Función matemática obtencióníndices III HORNER Genera, ante claves únicas, índices duplicados. ORLANDO  Garantiza, ante claves únicas, en rango 0-2n índices únicos !!!!! Para B=2*n y primo.
  • 6.
    Gestionar las colisionesen la tabla hash Mecanismos diversos de gestión colisiones en dispersión cerrada: Exploración Lineal Exploración cuadrática (Elegida) Dispersión doble Si colisión, implementar compareTo en búsquedas y borrados. Inserciones null Ninguno garantiza 100% éxito en solucionar colisión. Necesidad de FC<0.5 Si FC>0.5 Restructuración dinámica.
  • 7.
    Implementación de colisionesen tabla Recibir en función de dispersion, clave y elemento para compareTo (Garantía en caso de colisiones) Discriminar proceso entre: Inserción Búsqueda Borrado Si colisión en caso de inserción (celda distinta de null) buscar i^2 (índice obtenido función) hasta encontrar celda vacía. En proceso búsqueda y borrado, utilizar compareTo para garantizar no colisión.