Análisis y diseño de software dit UPM ejercicio 3 José A. Mañas 3.3.2016 ejercicio 3 • tablas hash – con listas externas de desbordamiento • programar, probar y medir • dibujar mejora de tiempos – con hoja de cálculo – con correlator ADSW 2 table hash con listas externas public class HashListas implements Diccionario { private final List<CV>[] slots; private int nDatos = 0; /** * constructor. * @param nSlots numero de ranuras (slots). */ public HashListas(int nSlots) { //noinspection unchecked slots = new List[nSlots]; ... ... ... DEBE pasar las pruebas } del ej1 para ponerlo a punto antes de medir. ADSW 3 ejemplo slots List<CV> : { “Lisa Smith”, V } List<CV> : { “John Smith”, V }, { “Sandra Dee”, V } List<CV> : { “Ted Baker”, V } List<CV> : { “Sam Doe”, V } ADSW 4 tareas • implementar la tabla hash – class HashListas implements Diccionario • poner a punto usando pruebas • medir operaciones – de comparación de Strings usando OpMeter • entregar ADSW 5 mediciones • creamos una tabla con NS slots • cargamos ND datos • ¿cuánto cuesta leer datos en función de NS? • casos de prueba – ND = 5.000 – NS = 500, 1.000, 1.500, 2.000, 2.500, ..., 20.000 ADSW 7 entrega • HashListas.java • HashListasTest.java • Gráficas (en PDF) – ver ejemplos a continuación ADSW 8 ejemplos • siguen algunos ejemplos de resultados obtenidos por los profesores • úselos a modo de guía – de qué tiene que hacer con SUS datos y – de lo que tiene que presentar como memoria del ejercicio ADSW 9 hash + listas eje X: NS; eje Y: ops ADSW 10 NS < ND ND = 5000 n = NS ADSW 11 NS < ND ND = 5000 n = NS ADSW 12 NS > ND NOPS = F(NS) 12000 10000 8000 6000 4000 2000 0 0 5000 10000 15000 20000 25000 eje X: NS; eje Y: ops ADSW 13