ブックマーク / nari.hatenablog.com (1)

  • [Ruby]ハフマン圧縮してみる - I am Cruby!

    みんなが大好きであろう「ハフマン圧縮」をRubyでそれっぽく書いてみる。 ハフマン圧縮についてはこちら画像圧縮アルゴリズム Rubyで書くとこんな感じか class Huffman def initialize(str) @targetWord = str end def encode @encode_table = get_encode_table(@targetWord) @targetWord.scan(/./).inject(""){|res, i| res+=@encode_table[i]} end def get_encode_table(target) #文字列を出現数順に並び替え @uniq_asce_ary = target.scan(/./).inject(Hash.new(0)){|res, h| res[h] += 1; res}.to_a.sort{|h, s|

  • 1