针对同一类型的多个查询优化算法

时间:2013-08-31 17:58:37

标签: algorithm search optimization

有一类特殊的算法编码问题需要我们评估多种查询,这些查询可以是两种类型:

  1. 对一系列数据执行搜索
  2. 更新给定范围内的数据
  3. 我最近一直在努力的一个例子是(虽然不是唯一的例子):Quadrant Queries

    现在,为了优化我的算法,我有一个想法: 我可以使用动态编程来保持特定范围的搜索结果,并根据需要生成其他范围的数据。

    例如,如果我必须计算从索引4到7的数组中的数字总和,我可以将元素之和保持为4,元素之和最多为7,这很容易然后我只需要区别两个+第四个元素是O(1)。但这引发了另一个问题:在更新操作期间,我将不得不更新我存储的搜索数据,以查找更新后的元素后面的所有元素。这似乎效率低下,虽然我没有尝试过。

    有人建议我可以使用一些特殊的数据结构组合后续更新操作。(实际上在某个论坛上阅读)。

    问题: 有没有一种已知的方法来优化这类问题?是否有特殊的数据结构呢?我提到的想法;它可能比直接方法更有效吗?我应该尝试一下吗?

1 个答案:

答案 0 :(得分:1)

可能会有所帮助: Segment Trees(范围 - 范围部分)