Chapter1,Problems 1-1
2013-08-30 00:01
316 查看
<<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之间的巨大差距!
即对输入为n的一个算法,假设其需要运行f(n)毫秒才能得出结果,那么对下表中不同的时间t,算出能在此时间能完成运行所对应的最大的n。
一般的算法题都是对相同的输入大小n,计算不同的运行时间。此题正好反过来,限定时间,看在这个时间内,不同的算法能够求解的最大的输入大小。为了有一个直观的认识,我计算了一下,得出了下面的结果:
可以看出,算法的优劣对性能的影响极为巨大(可以对比一下lgn和n!),特别是对于海量的数据。同时,还可以发现,在上表中f(n)的性能是依次下降的。特别是指数和阶乘所对应的NP问题,更为明显。
PS:在求解f(n)=nlgn时所对应的n的程序中,一开始偷懒,写了个线性的算法,结果在算最后一项(1 century)的时候等了n长时间不出结果(这可是我刚配的i3双核3.3G的机子啊。。。),然后又改成二分法,瞬间就出了结果。再一次证明了lgn和n之间的巨大差距!
相关文章推荐
- Chapter 8 Exercises & Problems
- Chapter 9 Exercises & Problems
- Chapter 10 Exercises & Problems
- chapter 2 : The Complexity of Algorithms and the Lower Bounds of Problems
- Chapter 11 Exercises & Problems
- Chapter 1 Exercises & Problems
- Chapter 12 Exercises & Problems
- Chapter 2 Exercises & Problems
- Chapter 13 Exercises & Problems
- Chapter 15 Exercises & Problems
- Chapter 3 Exercises & Problems
- Chapter 14 Exercises & Problems
- Chapter 4 Exercises & Problems
- Chapter 5 Exercises & Problems
- 课后习题和问题 Chapter 2 Problems
- Chapter 6 Exercises & Problems
- 课后习题和问题 Chapter 2 Problems 10-18
- Chapter 7 Exercises & Problems
- [linux device driver] Chapter 03:从scull_load学习小括号,中括号,和大括号的区别
- PRML Chapter 1. Introduction