如何设置数据结构?

时间:2014-12-16 16:30:09

标签: algorithm sorting

首先让我解释一下我想做什么。我有n个数据元素。每个元素都需要与其他元素一起检查,但不能与自身一起检查。如果一切正常,检查元素的函数返回true。如果出现问题,则函数会删除这两个元素并将其替换为新元素。但是新的也需要与其他所有元素一起检查。这将重复进行,直到每个元素都被检查完毕并且所有检查都没问题。

我在问如何以最有效的方式设置数据结构。当我用所有其他n元素测试ele1并且一切都很好然后我用ele84测试ele2并且两者都被替换我需要再次检查ele1和ele2,如果这些现在不好我需要再次检查所有ele1。但是如何以最有效的方式记住需要检查哪些元素以及哪些元素不能避免对元素进行双重检查?

1 个答案:

答案 0 :(得分:1)

您可以使用三个列表:Main,CurrentNew和NextNew

使用元素初始化Main - 使用嵌套循环检查所有元素,如果删除任何元素,则将新元素添加到NextNew

在下一次迭代中,NextNew变为CurrentNew - 分配新的NextNew列表。首先使用嵌套循环来检查CurrentNew的所有元素以及CurrentNew的其他元素,然后使用CurrentNew的元素检查Main的元素。新元素转到NextNew。请注意,您不会使用Main的其他元素检查Main的元素 - 您已经知道它们彼此有效。

在下一次和每次后续迭代中,将CurrentNew合并到Main,然后NextNew变为CurrentNew,重复直到所有元素都有效。