好的,所以,假设我有一个文本文件(不一定包含每个可能的符号),我想计算每个符号的频率,在计算频率之后,我需要从最频繁访问每个符号及其频率最不频繁。这些符号不一定是 ASCII 字符,它们可以是任意字节序列,尽管长度相同。
我正在考虑做这样的事情(在伪代码中):
function add_to_heap (symbol)
freq = heap.find(symbol).frequency
if (freq.exists? == true)
freq++
else
symbol.freq = 1
heap.insert(symbol)
MaxBinaryHeap heap
while somefile != EOF
symbol = read_byte(somefile)
heap.add_to_heap(symbol)
heap.sort_by_frequency()
while heap.root != empty
root = heap.extract_root()
do_stuff(root)
我想知道:有没有更好、更简单的方法来计算和存储每个符号在文件中出现的次数?