东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3047|回复: 0
打印 上一主题 下一主题

[学习笔记] 002、算法复杂度

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14431
QQ
跳转到指定楼层
楼主
发表于 2019-10-5 09:38:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
002、算法复杂度
1、面试必考
2、算法是否高效 通过复杂度衡量
3、空间复杂度 时间复杂度 任何AI工程师必须深入理解的概念
4、算法设计的时候一定要考虑复杂度


复杂度理论  complexity Theory  P问题 NP NP hard等


O(N)  O(N^2)   :  o notation


O(N) 线性的复杂度  
时间复杂度:time complexity  需要多少次的操作
a+b  或 a *b 都是一次操作
空间复杂度:space complexity 需要多少个内存单元(用了多少个变量)


ipynb文件在附件,可供下载!


O(1) 常数的复杂度


Merge Sort 归并排序
大问题 拆分为 子问题   递归的过程
一般拆分为2个子问题 如果拆分为3个子问题根据主定理 严格推导
它们的时间复杂度是一样的


归并排序的时间复杂度计算:主定理 master theorem
结论:O( nlog(n) )


指数级的复杂度 O(p^n)  p为常数
多项式复杂度 O(n^p)  p为常数


例子:斐波那契数列
递归的时间复杂度 O(2^n)  指数级
递归的空间复杂度 上下文切换 stack栈 入栈出栈  O(n)


优化方法:斐波那契数的循环实现


O(1) < O(log n) < O(n) < O( n logn ) < O(n^2) < O(n^2 logn)  < O(n^3) < O(n!)  


P、NP、NP-Complete、NP-Hard问题
如果一个问题可以找到一个只有多项式复杂度的算法
(这个算法可以在多项式时间内求得解),那这个问题就属于P(Polynomial)问题(即多项式问题)
无法找到任何多项式复杂度算法的可解问题,则称为指数型(Exponential)问题
没有任何可解算法的问题,则称为不可解问题
多项式时间内是否可以验证一个解,如果可以,这个问题就被称为NP(Non-Deterministic Polynomial )问题(即非决定性多项式问题)。


东方老师AI官网:http://www.ai111.vip
有任何问题可联系东方老师微信:dfy_88888
【微信二维码图片】


01.png (55.99 KB, 下载次数: 187)

01.png

02.png (18.45 KB, 下载次数: 183)

02.png

03.png (44.82 KB, 下载次数: 182)

03.png

04.png (46.6 KB, 下载次数: 181)

04.png

05.png (407.01 KB, 下载次数: 188)

05.png

06.png (699.55 KB, 下载次数: 188)

06.png

斐波那契数列01.jpg (8.78 MB, 下载次数: 184)

斐波那契数列01.jpg

排序复杂度.jpg (61.68 KB, 下载次数: 188)

排序复杂度.jpg

算法复杂度.ipynb

6.95 KB, 阅读权限: 10, 下载次数: 1

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-4-24 10:57 , Processed in 0.185243 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表