HUFFMAN_GREEDY_V2

Quantum Encoding Visualization Module

Process Status READY
Active Nodes 0
⚡

Logic Instruction

正在扫描节点频率... 准备执行贪心合并策略。

Speed
System Log Terminal Ready...
import heapq

def build_huffman(freqs):
    # 1. 初始化最小堆
    heap = [[f, [c, ""]] for c, f in freqs.items()]
    heapq.heapify(heap)
    
    # 2. 核心:贪心合并
    while len(heap) > 1:
        # 弹出当前最小的两个
        lo = heapq.heappop(heap)
        hi = heapq.heappop(heap)
        
        # 分配路径权值
        for p in lo[1:]: p[1] = '0' + p[1]
        for p in hi[1:]: p[1] = '1' + p[1]
        
        # 合并后再推入堆中循环比较
        heapq.heappush(heap, [lo[0]+hi[0]]+lo[1:]+hi[1:])
    
    return heapq.heappop(heap)