Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Algoritmo Huffman: Cómo Construir Códigos de Longitud Mínima con Árboles Binarios, Diapositivas de Programación Java

El algoritmo Huffman es un método para construir códigos de longitud mínima para mensajes basados en la frecuencia de las letras. Desarrollado por David A. Huffman en 1952, este método utiliza árboles binarios especiales llamados árboles de código Huffman. A continuación, aprenderemos cómo funciona este algoritmo y cómo construir un código de Huffman a partir de una tabla de frecuencias.

Tipo: Diapositivas

2021/2022

Subido el 29/09/2022

domy21
domy21 🇬🇹

5 documentos

1 / 19

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
CÓDIGO DE
HUFFMAN
APLICACIÓN DE ÁRBOLES BINARIOS
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Vista previa parcial del texto

¡Descarga Algoritmo Huffman: Cómo Construir Códigos de Longitud Mínima con Árboles Binarios y más Diapositivas en PDF de Programación Java solo en Docsity!

CÓDIGO DE

HUFFMAN

APLICACIÓN DE ÁRBOLES BINARIOS

ALGORITMO DE HUFFMAN

  • (^) El algoritmo de Huffman es un algoritmo para la construcción de códigos de Huffman, desarrollado

por David A. Huffman en 1952.

  • (^) Este algoritmo toma un alfabeto de n símbolos, junto con sus frecuencias de aparición asociadas,

y produce un código de Huffman para ese alfabeto y esas frecuencias.

Por ejemplo:

  • (^) En un periódico podríamos tratar de contar la frecuencia con la que se utiliza cada letra.
  • (^) Después de analizar varias muestras de texto, podemos decir que el número de veces que cada

letra es usada tiene proporciones como las de la siguiente tabla:

E – 1231^ FRECUENCIAS DE CADA LETRA

  • T – 959 A – 805 O –
    • N – 719 S – 659 I –
    • H – 514 R – - C – 320 D – 365 L – - U – 310 P – 229 F –
      • M – 225 W – 203 Y – - G – 161 B – 162 V – - K – 52 Q – 20 X – - J – 10 Z –

Ejemplo: • Suponga que se tienen sólo 5 letras y sus

secuencias

T – 10^ E – 29 N – 9

S – 4^ I – 5

1. Ordenamos la frecuencia en orden creciente, por lo que quedaría

  1. Escogemos los 2 valores más pequeños 4 y 5^ 4, 5, 9, 10, 29

3. Construimos un árbol binario con los bordes etiquetados y usando los dos valores

4+^ 4+ 55 44 55

  • (^) La raíz de nuevo contiene la suma de los valores de las hojas.
  • (^) Sustituimos el primer árbol en el segundo para tener un árbol completo

1818 (^99 ) 44 55

  • (^) Se reemplaza la secuencia (9, 9, 10, 29)
  • (^) Por la secuencia (18, 10, 29)
  • (^) De nuevo se construye el árbol con las dos secuencias menores

10+1^ 10+1 88 1010 1818

  • (^) El paso final es reemplazar los dos valores más pequeños en (10, 18, 29) con la suma (28, 29) y construir el árbol 28+2^ 28+2 99 2828 2929
  • (^) Y sustituyendo las ramas anteriores el árbol final quedaría de la siguiente forma:

Por ejemplo:

  • códigos más pequeñosLas letras más frecuntes tienen
  • códigos más largosY las menos frecuentes tienen

99 NN

S^ S^ II

T^ T

E^ E

Letra E Código Bit Frecuencia N^ T I S

Para codificar un string , se reemplaza cada letra con su código bit correspondiente.

Por ejemplo:

Letra Código Bit Frecuencia

E T

N I

S

String SENT String Codificado

TENNIS NEST

SIT

EJERCICIO

  • (^) Construya el código de Huffman para el siguiente texto
  • (^) A finales de septiembre del año pasado, la isla de Puerto Rico fue golpeada por el Huracán María,

dejando la isla y sus habitantes completamente devastados. Esto no afectó únicamente humanos

sino perros también. fueron rescatados de las calles, playas, parqueos Perros de razas mezcladas

y calles.