栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

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

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

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

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

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号