语句频度问题和算法得时间复杂度。

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值稍大时就无法应用。
posted @   电视机9号  阅读(2155)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示