语句频度问题和算法得时间复杂度。
2004-12-01 14:36
267 查看
2) k = 0
1 for (i = 1; i < =n;i++){
2 for (j = i; j < = n; j++)
3 k ++;
}
K++得执行次数是n,n-1,n-2,....1的等差数列求和得,(n+1)*n/2
等差数列求和公式:Sn=(a1+an)*n/2
-----------------------------------------------------------------------------------------
一个算法所耗费的时间=算法中每条语句的执行时间之和
算法求解问题的输入量称为问题的规模(Size),一般用一个整数表示
一个算法的时间复杂度(Time Complexity, 也称时间复杂性)T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数。当问题的规模n趋向无穷大时,时间复杂度T(n)的数量级(阶)称为算法的渐进时间复杂度。
其中的f(n)一般是算法中频度最大的语句频度。
主要用算法时间复杂度的数量级(即算法的渐近时间复杂度)评价一个算法的时间性能。
常见的时间复杂度按数量级递增排列依次为:常数0(1)、对数阶0(log2n)、线形阶0(n)、线形对数阶0(nlog2n)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(nk)、指数阶0(2n)。显然,时间复杂度为指数阶0(2n)的算法效率极低,当n值稍大时就无法应用。
1 for (i = 1; i < =n;i++){
2 for (j = i; j < = n; j++)
3 k ++;
}
K++得执行次数是n,n-1,n-2,....1的等差数列求和得,(n+1)*n/2
等差数列求和公式:Sn=(a1+an)*n/2
-----------------------------------------------------------------------------------------
一个算法所耗费的时间=算法中每条语句的执行时间之和
算法求解问题的输入量称为问题的规模(Size),一般用一个整数表示
一个算法的时间复杂度(Time Complexity, 也称时间复杂性)T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数。当问题的规模n趋向无穷大时,时间复杂度T(n)的数量级(阶)称为算法的渐进时间复杂度。
其中的f(n)一般是算法中频度最大的语句频度。
主要用算法时间复杂度的数量级(即算法的渐近时间复杂度)评价一个算法的时间性能。
常见的时间复杂度按数量级递增排列依次为:常数0(1)、对数阶0(log2n)、线形阶0(n)、线形对数阶0(nlog2n)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(nk)、指数阶0(2n)。显然,时间复杂度为指数阶0(2n)的算法效率极低,当n值稍大时就无法应用。
相关文章推荐
- 什么是AOP(转贴)
- 去掉快捷方式图标上的箭头
- Spring让Hibernate使用者受益良多
- Eclipse 配置资源
- C++程序优化
- 摩托罗拉的自我承诺:什么是真正的管理? (zt)
- 如何用Perl来获取主机地址?
- Unix awk使用手册
- 验证码的程序及原理
- VC学习资料收集(7):关于《连连看》的算法
- hymn新闻系统(后台程序)jsp版
- 联通手机卡
- VC学习资料收集(6):连连看通路检测算法
- sessionbean+entitybean 在 jbx+wl7中调试笔记。
- 几个用URL调用windows我的电脑,回收站等的链接
- 去空隔函数
- 客户端脚本
- 用webbrowser控件做一个资源管理器,如何得到IE控件中选中(鼠标多选)的文件名称列表?
- 用Perl写的FTP客户端程序
- 嗅探的基本原理 zz