Big o 程序运行时硬件问题

Big o 程序运行时硬件问题,big-o,Big O,一个algo需要0.5毫秒才能完成一次运算 输入大小为100,需要多长时间 如果输入大小为500,则运行 程序是O(nlg(n)) 我的书中说,当输入大小加倍时,n lg(n),需要“略多于两倍的时间”。这对我帮助不大 我一直在做的是求解常数乘数(这本书没有提到,所以我不知道它是否有效): .5ms=c*100*lg(100)=>c=.000753 所以 .000753*500*lg(500)=3.37562ms 这是计算运行时间的有效方法吗?还有更好的计算方法吗。这就是它的工作原理 当然,这忽

一个algo需要0.5毫秒才能完成一次运算 输入大小为100,需要多长时间 如果输入大小为500,则运行 程序是O(nlg(n))

我的书中说,当输入大小加倍时,n lg(n),需要“略多于两倍的时间”。这对我帮助不大

我一直在做的是求解常数乘数(这本书没有提到,所以我不知道它是否有效):

.5ms=c*100*lg(100)=>c=.000753

所以

.000753*500*lg(500)=3.37562ms


这是计算运行时间的有效方法吗?还有更好的计算方法吗。这就是它的工作原理


当然,这忽略了任何可能的初始化开销,因为这没有在big-o表示法中指定,但这与大多数算法无关。

这并不完全正确。托马斯说得对,有开销,而真正的等式更像

runtime = inputSize * lg(inputSize) * singleInputProcessTime + overhead
singleInputProcessTime与机器操作有关,例如加载地址空间、算术或每次与输入交互时必须执行的任何操作。这通常有一个从几个CPU周期到几秒或几分钟不等的运行时,具体取决于您的域。重要的是要理解,这个时间大体上是恒定的,因此在足够大的输入大小下不会对整个运行时产生太大的影响

开销是设置问题/解决方案的成本,例如将算法读入内存、在服务器/进程之间分配输入或任何只需发生一次或不取决于输入大小的设定次数的操作。这一成本也是恒定的,根据用于解决问题的方法的不同,它的范围从几个CPU周期到几分钟不等

输入大小和n*lg(n)你已经知道了,但是对于你的家庭作业问题,只要你解释一下你是如何得到答案的,你就应该没事了