我想做的是节省时间。例如,假设您有数组 A。给出了 3 个输入。 “4,1000,5”。您将在 A 的索引 4 和 1000 之间搜索数字“5”。假设此空间中没有“5”,并且您想保留此信息。因此,在另一个搜索中,当您必须在小于 4 的数字(例如 2)和大于 1000 的数字(例如 2000)之间搜索 5 时,您将不会在先前的空间中搜索它。搜索时间将减少。
我概括了这个问题,我不是在寻找一个只对这个特定例子有效的例子。(你可以这么说)
最佳答案
你完全可以按照你描述的去做。创建一个由搜索信息(从索引、到索引、搜索到的数字)和结果(不成功或找到的索引)组成的数据类型。对于每次搜索,您都将此信息保存在列表中。当开始新的搜索时,您可以首先检查缓存中是否有相关内容。如果有,您可以限制搜索空间。
但是,请注意,您使用此技术构建的缓存可能会很快失控并且(如果完成大量搜索)甚至可能比数组本身更大,从而消除了可能的速度增益。我认为这不是优化数组搜索的可行方法。这只会在非常特殊的情况下有效地工作,我可能不建议将此作为一般优化。
关于c++ - 如何保存特定输入的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324226/