【算法】算法复杂度

本文详细探讨了算法复杂度的概念,包括时间复杂度和空间复杂度的定义、表示方法以及如何计算。通过具体案例展示了常数阶、线性阶、对数阶和二次阶等不同复杂度级别的算法,并指出空间复杂度分析的重要性。
摘要由CSDN通过智能技术生成

1、算法分析

• 算法复杂度是衡量算法难度的尺度。

• 算法需要的资源越多,复杂度越高。计算机的资源,最重要的是运算所需的时间和存储程序和数据所需的空间资源。

• 算法复杂度包括时间复杂度和空间复杂度。

• 复杂问题或高效算法一般不做算法分析,而是采用基准测试方法。

• 能够分析清楚的算法,一般是简单或低效算法;

• 难题(如货郎担问题)及高效算法很难分析清楚。

2、计算算法复杂度的困难

• 算法复杂度与问题规模大小有关;
• 输入数据的分布也会影响算法复杂度。

算法复杂度评价:
• 最好、最坏、平均;
• 通常着重于最坏情况下的算法复杂度。

精确计算算法复杂度的困难:
(1)由算法写出程序需要花费很大的精力;
(2)会因为程序写的好坏,影响算法的质量;
(3)测试数据很难对各个算法都公正;
(4)好算法需要反复改进,反复测试,工作量很大。

3、算法时间复杂度的表示

• 算法时间复杂度指程序从开始运行到结束需要的时间。
• 问题规模为n,算法需要的时间为T(n)时,T(n)称为算法的“时间复杂度”。
• 算法时间复杂度常用大O表示(读为:大圈,Order,big-O)。
• 算法时间复杂度与输入数据的规模有关。
• 如,二分查找算法复杂度是O(log n࿰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值