时间复杂度及其算法

一个算法花费的时间理论上要经过测试才能得出,通过计算不能得出时间的复杂性,但我们知道一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。

一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))。随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。

例如:

在这里插入图片描述可以看出两个算法的计算量不同:
fact1函数包含了二重循环。fact2只包含和一重循环。可以看出在相同的硬软件环境下,前者花费的运行时间比后者多,也就是说后者的时间性能比前者好

当N=5时分别计算fact1 和fact2 中乘法,加法,赋值语句的执行次数
在这里插入图片描述

计算过程: fact1

在这里插入图片描述
fact2
在这里插入图片描述

可得结论:

fact1中算法执行次数:15+5+26=46次
fact2中算法执行次数:5+5+12=22次

fact2的运行时间小于fact1的运行时间

发布了125 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_40486955/article/details/98641662
今日推荐