Skip to content

5) Algoritmos desarrollados

JUARSO edited this page Aug 12, 2020 · 10 revisions

Algoritmo Huffman codificación

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

Captura de pantalla de 2020-08-11 12-11-56

Algoritmo Huffman decodificació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

Captura de pantalla de 2020-08-11 12-17-32

Algoritmo de diferencias

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.

Algoritmo de unificación de diferencias

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.

Clone this wiki locally