Belen Ordiales Martinez- Miercoles 12-13 (Tabla hash II)

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Belen Ordiales Martinez- Miercoles 12-13 (Tabla hash II) - Presentation Transcript

    1. TABLA HASH II Belén Ordiales Martínez 76955890-Y
    2. Alternativa de uso de la Tabla Hash.
      • Se puede implementar una interfaz Hasheable que contenga un método para recoger la clave del elemento.
      • public interface Hasheable{
      • public String getclave();
      • }
      • La clase de los elementos que contiene la clave, implementará esa interfaz.
      • Por ejemplo:
      • Mercancía implements Hasheable{
              • …………
              • }
    3. Alternativa de uso de la Tabla Hash.
      • La tabla hash tendrá un array de Hasheables en lugar de Comparables.
      • En el método insertar, se podrá utilizar el método getClave() para calcular la función de dispersión.
      • Por ejemplo:
            • public class TablaHash{
            • Hasheable []a;
            • public void insertar (Hasheable elemento){
            • ..... dispersión (elemento.getClave())% B;
            • }
            • }
    4. Función matemática que nos permita transformar la clave en un índice numérico para gestionar el array.
      • Implementamos la regla de Horner de tal forma que:
      • B=tamaño de la tabla hash
      • Cadena de caracteres=[C0 |C1| C2|...| Cn-1]
      • Utilizamos la formula:
      • ((C0*32)% B+C1*32)%B+.....)%B
      • Convierte cada carácter a un numero entero entre 0 y n-1
    5. ¿Cómo gestionar las colisiones el la Tabla Hash?
      • Con exploración lineal: si se produce una colisión se recorren las celdas en secuencia, con vuelta al principio, hasta encontrar una libre.
      • Se suelen producir agrupaciones primarias.
      • Con exploración cuadrática: si se produce una colisión, el lugar de ir a la celda siguiente se hará un salto cuadrático. De esta forma no se producen agrupaciones primarias ya que la dispersión de los datos es mayor.
    6. ¿Cómo implementar las colisiones el la Tabla Hash?
      • Con exploración lineal:
      • void insertar(Object clave, Object obj){
      • i=0;
      • do{
      • celda=(conversión ( clave)+i)% B;
      • i++;
      • }while(array[celda].este ocupada() || array[celda]!=NULL);
      • array[celda]=obj;
      • }
    7. ¿Cómo implementar las colisiones el la Tabla Hash?
      • Con exploración cuadrática:
      • void insertar(Object clave, Object obj){
      • i=0;
      • do{
      • celda=(conversión ( clave)+i^2)% B;
      • i++;
      • }while(array[celda].este ocupada() || array[celda]!=NULL);
      • array[celda]=obj;
      • }

    + edi.dsaedi.dsa, 2 years ago

    custom

    613 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 613
      • 613 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?