大话数据结构(1)——时间空间复杂度

本文探讨了算法的时间和空间复杂度,详细分析了不同类型的复杂度,如常数阶、线性阶、对数阶和平方阶,并通过实例说明如何计算和推导大O阶。特别提到了函数调用的时间复杂度分析,帮助读者更好地理解和应用数据结构。
摘要由CSDN通过智能技术生成

算法时间、空间复杂度

算法时间复杂度

在这里插入图片描述

时间复杂度分类

  1. 常数阶

    顺序结构的时间复杂度为O(1)
    单纯的分支结构时间复杂度为O(2)
    在这里插入图片描述
    上图时间复杂度为O(1)

  2. 线性阶
    int i;
    for(i = 0;i<n;i++)
    {
    	/*时间复杂度为O(1)的程序步骤
    }
    

3.对数阶
在这里插入图片描述
4.平方阶
在这里插入图片描述在这里插入图片描述

因此循环的时间复杂度等于循环体的复杂度乘以该循环运行的次数
在这里插入图片描述
理解大O阶的推到并不算难,难的是对数列的一些相关运算。
对于函数调用的时间复杂度分析:

int i,j;
for(i = 0; i<n; i++)
{
	function(i);
}

void function(int count)
{
	print(count);
}

以上 function函数的时间复杂度为O(1),所以整体的时间复杂度为O(n)。
假如function变成这样:

	void function(int count)
	{
		int j;
		for(j = count; j<n; j++)
		{
			//时间复杂度为O(1)的程序步骤序列
		}
	}

时间复杂度为O(n2)
下面这段:
在这里插入图片描述
在这里插入图片描述

常见时间复杂度

在这里插入图片描述

参考文献 《大话数据结构》 程杰 著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值