算法 - 如何降低复杂性?

时间:2015-02-10 19:53:34

标签: algorithm complexity-theory factorial fifo

我目前正面临一个算法问题,我可能需要你提供一些提示。

这里的问题详情如下: 给定n个容量为k的FIFO。还有十六种不同的元素。现在我们用随机数量的不同来填充这些FIFO 随机元素。任务是从FIFO中删除给定随机数量的随机元素。可能没有其他阻塞元件引起的最佳解决方案(不允许旋转FIFO)。 最好的解决方案是删除所有或大多数元素的解决方案(因此有更多可能的解决方案)。

这里有三个FIFO(由|分隔)和三个元素(a,b和c)的可视化示例:

   1 | 2 | 3  
  ---+---+---  
   . | b | c          <- last elements 
   . | b | a  
   a | a | b          <- first elements

我希望你现在知道我面临的问题。 (请随时询问是否有任何无法理解的内容)

以下是我对算法的看法:

  • 单独处理每个FIFO并检查可能删除的元素数量。 (此步骤对于删除以下步骤中的问题大小是必要的)
  • 尝试每种可能的组合以删除元素。 停止,如果有一个完美的组合,删除每个元素,记住最好的组合(这是删除大多数元素的组合)。

所以最糟糕的情况是O(n ^ k)的复杂性,这显然是可怕的!我真的很感激降低复杂性的想法。

0 个答案:

没有答案