家庭作业帮助 - 复杂性和运行时间

时间:2014-02-04 18:16:42

标签: algorithm time-complexity

我知道这是一个简单的问题,但请耐心等待。我被给予了许多算法复杂性(log(n),sqrt(n),n,...),我需要找到可以在指定时间内解决的最大尺寸n(1秒,1分钟, 1小时, ...)。说明书还说“......假设算法,解决问题需要f(n)微秒)”。有人可以帮我开始吗?我已经有了解决方案,我只是不知道如何计算它。

log(n)=>的解决方案

1 second = 2^(10^6)

1 minute = 2^(6 * 10^7)

1 hour = 2^(3.6 * 10^9)

1 个答案:

答案 0 :(得分:2)

虽然这是一次可怕的练习,但实际上很容易。您将获得一个函数f(n)和该函数的值。例如,1秒意味着10 ^ 6微秒。因此,基本上要求您解决n以下等式:

  • f(n) = 10^6,因为10 ^ 6us是1秒
  • f(n) = 60 * 10^6,因为60秒是1分钟
  • f(n) = 3600 * 10^6,因为3600秒是1小时

在您的示例中f(n)log(n)。简短的回答是,如果您有f(n) = k,那么要查找n,您需要f的反函数。换句话说,n = f-1(k)

f(n) = log(n)f-1(n) = 2^n

您现在应该能够自己确定连接并解决其他f(n)的作业。