比较两个数据表以确定其中一个而不是另一个的行

比较两个数据表以确定其中一个而不是另一个的行,第1张

比较两个数据表以确定其中一个而不是另一个的行

我必须遍历每个DataTable的每一行以检查它们是否相同。

从CSV文件中加载数据后,您将不会有任何索引或任何内容,因此在某些时候,无论是代码还是库,都需要遍历每一行。 , 管他呢。

无论如何,这是一个算法问题,这不是我的专长,但是我的幼稚方法如下:

1:您可以利用数据的任何属性吗?每个表中的所有行是否都是唯一的,是否可以按照相同的条件对它们进行排序?如果是这样,您可以这样做:

  • 通过两个表的ID对它们进行排序(使用一些有用的东西,例如快速排序)。如果它们已经被排序,那么您赢了很多。
  • 一次浏览两个表,跳过两个表中ID的任何空白。匹配ID的平均重复记录。

这使您可以在(排序时间* 2)+一遍中进行 *** 作,因此,如果我的big-O表示法正确,那么它将是(whatever-sort-time)+ O(m +
n),这非常好。
(修订:这是ΤΖΩΤΤΙΙΟΥ描述的方法)

2:一种替代方法,其效率或多或少取决于您的数据量:

  • 遍历表1,对于每一行,将其ID(或计算出的哈希码,或该行的某些其他唯一ID)粘贴到字典(或哈希表,如果您愿意称呼它)中。
  • 遍历表2,并针对每一行,查看字典中是否存在ID(或哈希码等)。您正在利用字典速度非常快的事实-我认为O(1)吗?抬头。这一步确实非常快,但是您需要为所有这些字典插入付出代价。

我真的很想知道哪些人比我更了解算法,所以提出了一个:-)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5113757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存