请教个算法的问题
已知有实现同一功能的两个算法,其时间复杂度分别为O(2^n)和O(n^10),假设现实计算机可连续运算的时间为秒10^7(100多天),又每秒可执行基本操作(根据这些操作...
已知有实现同一功能的两个算法,其时间复杂度分别为O(2^n)和O(n^10),假设现实计算机可连续运算的时间为秒10^7(100多天),又每秒可执行基本操作(根据这些操作来估算算法时间复杂度)10^5次。试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?哪个算法更适宜?请说明理由。
解: 2^n=10^12 n=40
n^10=10^12 n=16
则对于同样的循环次数n,在这个规模下,第二种算法所花费的代价要大得多。故在这个规模下,第一种算法更适宜。
我的疑问:为什么则对于同样的循环次数n,第二种算法规模n只有16,反而代价大呢?
再劳烦大家介绍一下这一题的思路,是怎么判断的。 展开
解: 2^n=10^12 n=40
n^10=10^12 n=16
则对于同样的循环次数n,在这个规模下,第二种算法所花费的代价要大得多。故在这个规模下,第一种算法更适宜。
我的疑问:为什么则对于同样的循环次数n,第二种算法规模n只有16,反而代价大呢?
再劳烦大家介绍一下这一题的思路,是怎么判断的。 展开
3个回答
展开全部
第一题不是很懂,没上过本科,第二题嘛,主要看指数,哪个高选哪个作为时间复杂度的级别,常数项无论是什么都没有意义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询