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

Algorithm 作业帮助-复杂性和运行时间,algorithm,time-complexity,Algorithm,Time Complexity,我知道这是一个简单的问题,但请耐心听我说。我被赋予了许多算法复杂性(log(n)、sqrt(n)、n等等),我需要找到可以在指定时间(1秒、1分钟、1小时,…)内求解的最大大小n。指令中还说“…假设算法解决问题需要f(n)微秒”。有人能帮我开始吗?我已经有了答案,我只是不知道如何计算 日志的解决方案(n)=> 虽然这是一个可怕的练习,但实际上非常简单。您将获得一个函数f(n)和该函数的值。例如,1秒意味着10^6微秒。因此,基本上要求您求解以下方程式的n: f(n)=10^6,因为10^6us

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

日志的解决方案(n)=>


虽然这是一个可怕的练习,但实际上非常简单。您将获得一个函数
f(n)
和该函数的值。例如,1秒意味着10^6微秒。因此,基本上要求您求解以下方程式的
n

  • f(n)=10^6
    ,因为10^6us是1秒
  • 因为60秒等于1分钟
  • 因为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)
s的家庭作业。

谢谢您的帮助!我现在明白了
1 second = 2^(10^6)

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

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