在单个解析中解析大文件中的某些信息

问题描述:

我有一个包含特定结构的大文件。我想知道结构中特定字段的前10个最常出现的值。我可以做它在一个单一的解析?在单个解析中解析大文件中的某些信息

+0

信息不足。 – 2012-04-12 06:06:48

+0

为什么这个信息不足。我的问题主要是关于算法的理论 – liv2hak 2012-04-12 06:08:43

您需要存储和更新包含字段和出现次数的关联数组。取决于有多少不同的领域,你的记忆将是限制。

完成后,根据值做一个排序的数组。 AFAIK,C不包含关联数组数据类型,因此您需要使用第三方库,有些选项请参阅Looking for a good hash table implementation in C

至于分拣,有http://linux.die.net/man/3/qsort

因此忽略可能的内存需求,可以一次完成。

+0

我说的文件是相当庞大的,将每一个单独的事件存储在内存中的可能性几乎是不可能的。我的问题主要是存在每一个方法单个值,比如说我会存储前10或20个。这是行不通的,因为文件的后半部分可能都是一个值,并且会影响我的计算。 – liv2hak 2012-04-12 06:33:43

+1

是的,您需要浏览该文件并对每个字段进行计数。我知道你要求一个单一的解析,但你有没有考虑过减少地图? :) – 2012-04-12 06:44:38

+0

来想象它地图减少可以是此算法的一个很好的选择。您的建议表示赞赏。谢谢。 – liv2hak 2012-04-12 09:29:13