时间复杂度和空间复杂度的计算方法

本文详细介绍了如何计算和理解算法的时间复杂度和空间复杂度,通过实例解析了大O阶的推导过程,并列举了常见复杂度的效率排序。强调了在算法设计中,高效的时间复杂度如O(1)、O(logn)和空间复杂度的考量对于程序性能的重要性。
摘要由CSDN通过智能技术生成

面试一问计算复杂度竟然给我问懵了QAQ,才突然发现一直没有注意过复杂度的计算。在这里写一写复杂度的计算。包括时间复杂度和空间复杂度。

时间复杂度

时间复杂度是衡量算法效率的基本方法,或者说是程序运行的时间长短。
《大话数据结构》一书中对时间复杂度的定义:
算法语句总的执行次数 T(n) 是关于问题规模 n 的函数,进而分析 T(n) 随 n 的变化情况并确定 T(n) 的数量级。算法的时间复杂度,也就是算法的时间度量,记作:T(n) = O(f(n)) 它表示随问题规模 n 的增大,算法执行时间的增长率和f(n) 的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中 f(n) 是问题规模 n 的某个函数。”
以一个从1加到100的例子来说,如果用叠加的方法算起来,写出一下代码。

int sum=0,n=100;//执行了1次
for(int i=1;i<n;i++)//执行了n+1次
{
    sum += i;执行了n次
}
cout
时间复杂度空间复杂度是衡量算法效率的两个重要指标。时间复杂度是指算法执行所需的时间,而空间复杂度是指算法执行所需的内存空间。下面是它们的计算方法: 1. 时间复杂度计算方法: 1.1 使用大O符号表示法,即T(n) = O(f(n)),其中T(n)表示算法执行所需的时间,f(n)表示算法输入规模n的函数。 1.2 常见的时间复杂度有: O(1):常数时间复杂度,表示算法的执行时间不随输入规模n的增加而增加。 O(logn):对数时间复杂度,表示算法的执行时间随输入规模n的增加而增加,但增长速度很慢。 O(n):线性时间复杂度,表示算法的执行时间随输入规模n的增加而线性增加。 O(nlogn):线性对数时间复杂度,表示算法的执行时间随输入规模n的增加而增加,但增长速度比O(n)慢。 O(n^2):平方时间复杂度,表示算法的执行时间随输入规模n的增加而平方增加。 O(2^n):指数时间复杂度,表示算法的执行时间随输入规模n的增加而指数增加。 2. 空间复杂度计算方法: 2.1 使用大O符号表示法,即S(n) = O(f(n)),其中S(n)表示算法执行所需的内存空间,f(n)表示算法输入规模n的函数。 2.2 常见的空间复杂度有: O(1):常数空间复杂度,表示算法的内存空间使用量不随输入规模n的增加而增加。 O(n):线性空间复杂度,表示算法的内存空间使用量随输入规模n的增加而线性增加。 O(n^2):平方空间复杂度,表示算法的内存空间使用量随输入规模n的增加而平方增加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值