それはZivとLempelって人が作ったLZ77っていう圧縮アルゴリズムをStorerとSzymanskiが改良したLZSSっていうのを使ってる。 思い出しながら書いたんで多少違ってるかもしれないが。 プチコン用に書いたから、みにくいところとかわかりづらいところがあるんで、興味があれば他の言語の実装みたりしてみるといいよ。 他にもハフマン、deflateとかLZ78、LZWとかある。 なんでLZSSを選らんだのかってのが伝わるといいんだけど。