您的位置:首页 > 编程语言 > Go语言

Chapter1,Problems 1-1

2013-08-30 00:01 253 查看
<<Introduction to Algorithms>>第三版,Chapter1,Problems 1-1,





即对输入为n的一个算法,假设其需要运行f(n)毫秒才能得出结果,那么对下表中不同的时间t,算出能在此时间能完成运行所对应的最大的n。

一般的算法题都是对相同的输入大小n,计算不同的运行时间。此题正好反过来,限定时间,看在这个时间内,不同的算法能够求解的最大的输入大小。为了有一个直观的认识,我计算了一下,得出了下面的结果:



可以看出,算法的优劣对性能的影响极为巨大(可以对比一下lgn和n!),特别是对于海量的数据。同时,还可以发现,在上表中f(n)的性能是依次下降的。特别是指数和阶乘所对应的NP问题,更为明显。

PS:在求解f(n)=nlgn时所对应的n的程序中,一开始偷懒,写了个线性的算法,结果在算最后一项(1 century)的时候等了n长时间不出结果(这可是我刚配的i3双核3.3G的机子啊。。。),然后又改成二分法,瞬间就出了结果。再一次证明了lgn和n之间的巨大差距!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息