算法分析基础学习笔记

本文介绍了算法分析的基础,重点关注时间复杂度和空间复杂度的概念。阐述了Ο和Ω符号的含义,以及它们在描述算法效率上的作用。通过数学定义解释了这些符号如何定义算法的渐进上界和下界,并简要提到了Θ符号表示的精确界限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法分析基础学习笔记


首先恩,复杂度是个神马东西(o゚▽゚)o

复杂度分为时间复杂度和空间复杂度。 ̄ω ̄= 复杂度这个玩意是用来表征某段程序的运行效率的。程序的运行效率的具体表现形式又分为该程序运行时解决问题所用时间多少和所用内存大小。其中,解决问题所用时间多少的数量级被抽象为时间复杂度,一般来说,时间复杂度越小越好,所代表的的时间需求就越少;解决问题所用的内存多少的数量级被抽象为空间复杂度,且空间复杂度越小越好,所代表的空间需求就越小。

来谈谈令人色变的Ο和Ω符号,恩,还有Θ符(`・ω・´)

Ο和Ω这两符号是一对天生的好基友。它们都是用来近似地表征某段程序的复杂度的。
我们先来看一下Ο,Ω,Θ,o的数学定义。
(摘自《数据结构与算法分析》一书)

定义:如果存在正常数c和n0 使得当 N >=n0 时T(N)<=cf(N),则记为T(N)=O(f(N))。
定义:如果存在正常数c和n0 使得当 N >=n0 时T(N)>=cg(N),则记为T(N)=Ω(g(N))。
T(N)=Θ(h(N)) 当且仅当 T(N)=O(h(N)) 且 T(N)=Ω(h(N))。
若 T(N)=O(p(N)) 且 T(N)!=Θ(p(N)) 则记 T(N)=o(p(N))。

在数学上,大O是用另一个(通常更简单的)函数来描述一个函数数量级的渐近上界。在这里,我们的实际算法时间复杂度为T(N),即T(N)为对算法实际运行时间的一个量度。第一个定义是说,最后总存在一个点n0,在它以后cf(N)至少与T(N)一样大。若忽略常数因子c,f(N)至少与T(N)一样大。这就是说,f(N)总会大于或等于T(N),这样,f(N)就形成了一个对T(N)的渐进上界,此时称O(f(N))为算法的最坏情况。如下图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值