【发布时间】:2015-06-26 14:11:12
【问题描述】:
我需要从一个非常大(约一百万个条目)的文本文件中读取数据,并试图确定哪种数据结构最合适。文件中的每个条目都包含两个整数,表示有向图中的一条边(尾部和头部顶点),并且绝大多数顶点至少有一条出边。我的“天真”解决方案是使用向量的向量,所以如果尾顶点为 1 而头顶点为 2,我只需执行类似graph[1].push_back(2) 的操作来读取条目“1 2”。读入图表后,我将使用 Kosaraju 的算法来计算强连接组件,因此我认为能够通过 [] 运算符在恒定时间内访问每个元素会很方便。
在这种情况下,就数据结构而言,“典型”选择是什么?另外,假设向量的向量想法很糟糕,为什么它很糟糕?我猜他们向量需要重新调整自身大小的事实会减慢速度,但边/顶点的数量直到运行时才知道,所以我不确定解决这个问题的方法。
谢谢
【问题讨论】:
标签: file-io data-structures text-files