TPI del grupo 1, comision 3 de "Algoritmos y Estructuras de Datos I" (FCEyN)
-
Freire, Guido
-
Hernandez, Agustin
-
Machulsky, Joaquin
- muestraHomogenea ahora chequea que la longitud de res sea mayor o igual a 3 en un if completamente desacoplado (no hay forma de que devuelva salida de menos de 3 elementos).
- quitarIndividuos ahora almacena los individuos que no cumplen la busqueda, en vez de sus CODUSU.
- corregirRegion ahora utiliza las definiciones de GBA y PAMPEANA en lugar de sus codigos.
-
indiceMenorigual es la columna vertebral de la resolucion del TP. Dado un "e" y un vector "v", devuelve un indice "i" (de v) tal que todos los elementos anteriores a i son menores o iguales a e y todos los siguientes son estrictamente mayores. Esto se hace por busqueda binaria, lo que significa que indiceMenorigual tiene una doble funcion: permite saber si un elemento pertenece o no a una lista y a su vez donde se deberia insertar para que el vector resultante siga estando ordenado.
En algun momento nuestra resolucion del tp incluyo este comportamiento en dos funciones separadas: insertarOrdenado y perteneceBinario, aunarlas significa una mejora de rendimiento considerable.
-
esEncuestaValida separa algunos requerimientos en varios ifs en vez de encadenarlos en una sola guarda, esto es para mejorar que sea lo mas fiel posible a su especificacion.
-
generarJoin ordena th segun HOGCODUSU antes de aparear hogares con individuos - se podria crear una copia ordenada en menor complejidad algoritmica, pero esto aumentaria la complejidad de la resolucion innecesariamente.
-
muestraHomogenea utilizamos una matriz que describe las diferencias de ingresos entre 2 elementos cualquiera con la intencion de aplicar los conocimientos sobre matrices que adquirimos en la practica 11 y el laboratorio 7.
-
En "Funciones_TPI.h" se anadio la linea 7 que incluye la libreria "algorithm", de no hacerlo no compilaban los tests ya que utilizan sort().
-
main2.cpp utiliza el graficador de complejidad provisto por la catedra (graficar.py), el archivo esta totalmente desvinculado del resto (a menos que se lo añada en CMakeLists.txt).
Los ejercicios de este TP conciernen la manipulacion de secuencias, la mayoria de ellos implican ordenarlas de una forma u otra. Bajo esta idea se podria generalizar gran parte del trabajo algoritmico abstrayendo tipos y criterios de comparacion. Investigar objetos funcion y experimentar (ver: branch lambda).