【问题标题】:Time bounded execution : Loops or Recursion?限时执行:循环还是递归?
【发布时间】:2013-08-09 15:48:35
【问题描述】:

我有一个问题,我确实使用简单的循环解决了它。但该计划有严格的时间限制。我是否能够使用递归调用某些函数来获得更好的执行时间??

long int calcMis(char *string,int i, int j,int len)
{
     long int mis=0;
     for(int k=0;k<len;k++)
     {
             if((mis+len-k)<=max)
                 return mis;

             if(string[i+k]!=string[j+k])
                mis++;

             if(mis>max)
                 return -1;
     }
     return mis;
}

【问题讨论】:

  • 如果您愿意显示一些代码,可能会
  • 您能否发布您的代码,以便我们对您的算法进行迭代分析?它将帮助我们就您收到这些问题的原因与您沟通。可能的原因是您正在创建一个在一些荒谬的运行时间(例如 2^n)中执行的算法。
  • 在不了解问题的情况下很难说出来......
  • 递归不是魔法,你需要看看你的循环体,找出比它应该花费的时间更长的地方,然后优化它。或者在更高的层次上,改进你的算法
  • 递归涉及一个函数调用,它通常比停留在同一个程序和迭代循环中使用更多的资源(时间、存储)。

标签: python c recursion


【解决方案1】:

已经有很多关于这个主题的话题了。 Is recursion ever faster than looping?Why is recursion in python so slow? 在第一个谷歌搜索页面中产生...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多