我有项目。尽快确定2个列表之间变化的算法?
这些项目是从一个网站通过API下载到我的网站。
我从网站下载A.所有项目
有在我身边匹配的JSON对象。重要的是我需要这样做。
名单A(我的网站)需要与列表B(他们的网站)进行同步。
我必须手动同步处理,因为它们的API限制。
因此,有项目和属性:
定列表A和B.列出这将是一个快速算法使:
If A is missing object from B, add it.
If B no longer contains an element found in A, remove it from A.
If an attribute in B is != an attribute in an object from A, update the object in A.
我觉得自己像做了很多本的唯一途径将是O(N^2)。有一些方法比O(N^2)好一些吗?
感谢
使用HashSet的和/或一些LINQ加入/联盟/节选是相当微不足道的。前者可能导致更好的界限,但后者可以......好,更多LINQ'y。 – 2013-02-14 18:47:46
您可以在O(n log n)时间对两个列表进行排序。你能想到一个算法来比较两个线性时间操作的排序列表吗? – 2013-02-14 18:43:38