数据结构之时间复杂度

时间复杂度是评估算法运行效率的重要指标,它通过数学函数描述算法执行次数与输入大小的关系。文章介绍了时间复杂度的概念,如T(n) = O(f(n)),并举例说明了不同函数表达式对应的时间复杂度,包括线性、对数、多项式和指数级的时间复杂度,并探讨了在不同输入规模下,不同时间复杂度算法的运行速度对比。
摘要由CSDN通过智能技术生成

前言:为什么会出现时间复杂度这个概?

        我们在编写代码的时候为了完成一个函数功能,可能用到不同的处理方式:顺序多次执行、使用for循环执行、使用递归调用等等。当循环次数取值范围不同时,各种算法处理所耗费的时间也不一样,不同的算法所执行的次数通过分析可以用数学函数表达。

        时间复杂度概念:我们把 算法需要执行的运算次数 用 输入大小n 的函数 表示,即 T(n) 。此时为了 估算算法需要的运行时间 和 简化算法分析,我们引入时间复杂度的概念。

        时间复杂度定义:存在常数 c 和函数 f(N),使得当 N >= c 时 T(N) <= f(N),表示为 T(n) = O(f(n)) 。

实际应用中带来的优势

        如下图:假设现在有两个算法均可以实现一个功能,其运算次数n的函数表达分别为T(n) = n + 2与T(n) = n^2。可以这样理解,同一个功能,一个人只用了一层for循环执行N次,再多运行两次;另一个人用了for循环嵌套for完成,所以执行次数为n^2。

       

         当 N >= 2 的时候,f(n) = n^2 总是大于 T(n) = n + 2 的,于是我们说 f(n) 的增长速度是大于或者等于 T(n) 的,也说 f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值