coursera Algorithm 课程 divide and conquer 第一周笔记(big O(算法复杂度分析))

这篇博客介绍了Coursera Algorithm课程中关于divide and conquer的第一周内容,主要聚焦在big O(算法复杂度分析)。讨论了进行big O分析的原因,如超越架构和语言限制,以及在不同算法间比较的优势。文章详细阐述了分析的三条基本假设,并列举了常见的时间复杂度类型,如O(1), O(logN), O(N), O(NlogN), O(N2), O(2N)。此外,还解释了O, Ω和Θ分析的数学定义,并给出了练习例子。" 89007342,5645953,TensorFlow2.0实战:Numpy实现线性回归,"['深度学习', '回归问题', 'Python', 'TensorFlow2.0']

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

O method(算法复杂度分析基本方法)

做big O 分析的原因:

  1. 对于高等级的算法分析要知道其“sweet spot”
  2. 能超越架构、语言、编译器等进行分析
  3. 在不同算法之间比较十分有用

三条假设(规则):

  1. 只针对时间最长(最坏情况做分析)
  2. 忽略那些常数项和低等级的项
  3. 只针对输入数据的规格(N)较大的情况下

常见的几种:

O ( 1 ) , O ( l o g N ) , O ( N ) , O ( N l o g N ) , O ( N 2 ) , O ( 2 N ) O(1),O(logN),O(N),O(NlogN),O(N^2),O(2^N) O(1),O(logN),O(N),O(NlogN),O(N2),O(2N)
时间复杂度上依次升高
在这里插入图片描述

各分析定义:

BIG O 分析的数学定义:
T ( N ) = O ( f ( N ) ) T(N)=O(f(N)) T(N)=O(f(N))的含义是:
如果存在一个C,N0,使所有 N > = N 0 N>=N0 N>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值