A lossless data compression algorithm that assigns shorter codes to more frequently occurring symbols in a message.