【问题标题】:Appropriate data structure for storing data read from a large text file用于存储从大型文本文件中读取的数据的适当数据结构
【发布时间】:2015-06-26 14:11:12
【问题描述】:

我需要从一个非常大(约一百万个条目)的文本文件中读取数据,并试图确定哪种数据结构最合适。文件中的每个条目都包含两个整数,表示有向图中的一条边(尾部和头部顶点),并且绝大多数顶点至少有一条出边。我的“天真”解决方案是使用向量的向量,所以如果尾顶点为 1 而头顶点为 2,我只需执行类似graph[1].push_back(2) 的操作来读取条目“1 2”。读入图表后,我将使用 Kosaraju 的算法来计算强连接组件,因此我认为能够通过 [] 运算符在恒定时间内访问每个元素会很方便。

在这种情况下,就数据结构而言,“典型”选择是什么?另外,假设向量的向量想法很糟糕,为什么它很糟糕?我猜他们向量需要重新调整自身大小的事实会减慢速度,但边/顶点的数量直到运行时才知道,所以我不确定解决这个问题的方法。

谢谢

【问题讨论】:

    标签: file-io data-structures text-files


    【解决方案1】:

    你知道顶点的数量吗?

    向量的向量并不是您想象的那么糟糕,因为您可以在读取边缘之前调整外部向量的大小。这样就可以防止复制整个图表。

    据我所知,向量的向量是图的良好结构。它经常用于计算机科学奥林匹克竞赛。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多