创建数据结构以相互比较300个元素

时间:2010-10-25 18:57:19

标签: database data-structures matrix

首先,我正在研究大约300个元素之间的相互作用。每个元素都将与所有其他元素及其自身交互。在少数这种情况下,会发生反应,我会标记这种反应。

由于这基本上是一个包含大约90,000个可能的交互的矩阵,我想用代码来管理这些数据,所以我可以很容易地测试我想要的交互,直到我对它们进行全部测试。由于我显然不会一次性完成所有这些操作,因此数据必须以某种方式存储在磁盘上。

这是我的问题:这对于理想的数据结构设计是什么?我通常使用关系数据库进行数据存储,这个特殊问题似乎与RDB没有很好的联系。如果我不清楚,请告诉我。

2 个答案:

答案 0 :(得分:2)

这里的RDBMS没有任何问题:重要的是没有获取数据,但之后报告数据,并且无法从您的描述中了解您的需求。

至于存储300x300的结果:您只需要记录反应,而不是每次测试。那,以及你在测试中得到的矩阵有多远。

请注意,90k记录并不是真正的数据,因此如果您愿意,可以保留所有数据。

编辑:您只需要几张表:

Elements
--------
ItemID
... -- whatever identifying info you need

Crossref
--------
ItemX int
ItemY int
Results -- whatever data you need

对于它的价值:如果元组{ItemX,ItemY}等同于{ItemY,ItemX},那么你没有进行300x300比较,你正在做(300 + 299 + 298 + ... + 1 )= 45150。

答案 1 :(得分:0)

我认为在数据结构方面,您已在帖子中回答了您的问题。我认为,矩阵是最简单的方法。就存储它而言,正如egrunin所说,90k记录不是很多。您可以将其存储在某个位置的DB或平面文件中。只需存储已经过测试的对,即(A1,A2),(A1,A3)......