-
Notifications
You must be signed in to change notification settings - Fork 0
5) Algoritmos desarrollados
La función encode revise un string , este crea una tabla de frecuencias con las letras que dentro del string, luego de esto pasa sobre la tabla de frecuencia creando el árbol de huffman,a estos caracteres que van a ser agregados son codificados como su reperecentacion en valor binario y luego de esto se le da el valor ACII correspodiente para que realmente exista una compresión

La función decode recibe un string donde recibe la codificación en ACII y en largo del string original, luego de esto el algoritmo empieza a iterar sobre el árbol para encontrar el caracter según el valor codificado actual,en el momento de que el carácter es encontrado se de vuelve a la raíz y vuelve a empezar el proceso de búsqueda hasta se termine de escribir la palabra original

El algoritmo de generar las diferencias consiste en buscar letra por letra , comparando el commit anterior con el commit actual, de manera que se guardan las nuevas letras que no existían anteriormente, y solamente estas. Para lograr dicho objetivo, se guardan tres arrays , uno de las nuevas letras, otra de los indices de donde van estas letras y otro de las letras eliminadas. El código del algoritmo es el que se ve en la imagen, en donde los arrays newLines, newLinesAt y deletedLinesAt son los arrays anteriormente mencionados.

Este algoritmo consiste en una función que recibe el historial de commits (un json con un array de los tres arrays fundamentales del commit, los cuales se mencionaron anteriormente). Este historial de commits se recorre en un ciclo y en cada iteración se agregan las nuevas lineas en su debida posición y se eliminan aquellas líneas que fueron eliminadas. Al final el algoritmo une las letras finales en un solo string, y lo devuelve, este es el finalText.
