当前位置: 首页 > news >正文

支付网站服务费怎么做分录外贸seo推广

支付网站服务费怎么做分录,外贸seo推广,做电脑游戏破解的网站,重庆专业的网站建设文章目录 前言大O表示法3个时间复杂度分析原则常见的时间复杂度量级空间复杂度参考资料 前言 算法题写完以后,面试官经常会追问一下你这个算法的时空复杂度是多少?(好像作为一名算法工程师,我日常码代码的过程中,并没…

文章目录

  • 前言
  • 大O表示法
  • 3个时间复杂度分析原则
  • 常见的时间复杂度量级
  • 空间复杂度
  • 参考资料

前言

算法题写完以后,面试官经常会追问一下你这个算法的时空复杂度是多少?(好像作为一名算法工程师,我日常码代码的过程中,并没有太注意这个,惭愧~但是找做后端开发的男票求证了一下,他们日常工作确实会去考虑这种问题)那么无论是为了应付面试,还是为了未来码代码可以精益求精,都还是认真的学一下时空复杂度分析方法吧!

对于为什么需要时空复杂度分析,而不是直接跑一下代码看看,看到王争大佬在《数据结构与算法之美》(墙推)里给的两个原因是:

  1. 测试结果依赖测试环境:机器的配置会十分影响你跑出的结果;
  2. 测试结果依赖数据规模的大小。

因此,我们需要一个不依赖数据规模和测试环境,帮助粗略估计算法执行效率的方法!也就是下面的大O表示法~

大O表示法

举个栗子🌰,下面这个函数的总的执行时间 T ( n ) = 1 + 2 n T(n) = 1+2n T(n)=1+2n个unit time!

def f(n: int)a = 0  # 1个unit timefor i in range(n):  # n个unit timea += i  # n个unit timereturn a

再举个栗子🌰,下面这个函数的总的执行时间 T ( n ) = 1 + n + 2 n 2 T(n) = 1+n+2n^2 T(n)=1+n+2n2个unit time!

def g(n: int, m: int)a = 0  # 1个unit timefor i in range(n):  # n个unit timefor j in range(n): # n^2个unit timea += i*j  # n^2个unit timereturn a

用一个公式表示就是:
在这里插入图片描述
其中:

  • T ( n ) T(n) T(n)表示代码执行的时间;
  • n n n:表示数据规模的大小;
  • f ( n ) f(n) f(n):表示每行代码执行的次数总和
  • O O O:表示执行时间 T ( n ) T(n) T(n) f ( n ) f(n) f(n)成正比。

所以第一个例子的时间复杂度为 T ( n ) = 1 + 2 n T(n) = 1+2n T(n)=1+2n,第二个例子的时间复杂度为 T ( n ) = 1 + n + 2 n 2 T(n) = 1+n+2n^2 T(n)=1+n+2n2,这就是大O时间复杂度表示法。大O时间复杂度表示法实际上并不是具体值代码执行的时间,而是代表代码执行时间随着数据规模增长的变化趋势,所以也叫渐进时间复杂度,简称时间复杂度。

当n很大时,公式中的低阶、常量、系数三部分并不左右增长趋势,所以都可以忽略,只需要记录一个最大量级即可!因此,上例的时间复杂度可以记为: T ( n ) = O ( n ) T(n) = O(n) T(n)=O(n) T ( n ) = O ( n 2 ) T(n) = O(n^2) T(n)=O(n2)

3个时间复杂度分析原则

3个原则:

1. 只关注循环执行次数最多的一段代码:
还是上面第一个例子,关注for循环这段代码就行了,a = 0这类代码都是常量级的执行时间,与 n n n无关。

def f(n: int)a = 0  # 1个unit timefor i in range(n):  # n个unit timea += i  # n个unit timereturn a

2. 总复杂度 = 量级最大的那段代码的复杂度:
这个有点像运筹学里关键路径法的思想,只有找到了最关键/量级最大的,你去优化的时候才能发力在刀刃上~

比如下面这段代码,有一层for循环的,有两层for循环,我们去关注两层for循环的这段代码即可。

def g(n: int, m: int)for i in range(n):passa = 0  # 1个unit timefor i in range(n):  # n个unit timefor j in range(n): # n^2个unit timea += i*j  # n^2个unit timereturn a

3. 嵌套代码的复杂度 = 嵌套内外代码复杂度的乘积:
上面的第二个例子,两层for循环嵌套,最后的时间复杂度 = 外层for循环的复杂度乘以里面for循环的复杂度。

def g(n: int, m: int)a = 0  # 1个unit timefor i in range(n):  # n个unit timefor j in range(n): # n^2个unit timea += i*j  # n^2个unit timereturn a

常见的时间复杂度量级

  • 多项式量级:下图左侧;
  • 非多项式量级:下图右侧波浪线。执行时间会随着数据规模的增大而急剧增大,是非常低效的算法

在这里插入图片描述
在这里插入图片描述

空间复杂度

又称为渐进空间复杂度,表示算法的存储空间与数据规模之间的增长关系!

举个栗子🌰,空间复杂度为 O ( n ) O(n) O(n)

def f(n: int):a = 2  # 1个空间存储变量,常量b = [] # 从下面代码可以看出时一个大小为n的数组for i in range(n):b.append(i)return b

参考资料

  1. 《数据结构与算法之美》王争

文章转载自:
http://obsolescent.c7625.cn
http://displace.c7625.cn
http://metric.c7625.cn
http://triole.c7625.cn
http://rhesis.c7625.cn
http://dimeter.c7625.cn
http://schatchen.c7625.cn
http://lkr.c7625.cn
http://peevish.c7625.cn
http://nazification.c7625.cn
http://quantometer.c7625.cn
http://idiotype.c7625.cn
http://laborer.c7625.cn
http://reallocate.c7625.cn
http://tantalus.c7625.cn
http://lactoprotein.c7625.cn
http://conspectus.c7625.cn
http://detassel.c7625.cn
http://doorjamb.c7625.cn
http://meticulous.c7625.cn
http://aerobiology.c7625.cn
http://eland.c7625.cn
http://resemble.c7625.cn
http://saturated.c7625.cn
http://aglaia.c7625.cn
http://farceur.c7625.cn
http://administratrix.c7625.cn
http://salvageable.c7625.cn
http://mounted.c7625.cn
http://hsf.c7625.cn
http://chastening.c7625.cn
http://credulously.c7625.cn
http://nondescript.c7625.cn
http://eyebright.c7625.cn
http://prelexical.c7625.cn
http://retrobronchial.c7625.cn
http://galumph.c7625.cn
http://torun.c7625.cn
http://freeware.c7625.cn
http://neostigmine.c7625.cn
http://jubilantly.c7625.cn
http://hypertension.c7625.cn
http://handle.c7625.cn
http://yieldance.c7625.cn
http://randomness.c7625.cn
http://serpentine.c7625.cn
http://etrog.c7625.cn
http://unimaginable.c7625.cn
http://pseudepigraphy.c7625.cn
http://snuffcolored.c7625.cn
http://antiracism.c7625.cn
http://irisher.c7625.cn
http://heehaw.c7625.cn
http://breastpin.c7625.cn
http://incoherence.c7625.cn
http://pararescue.c7625.cn
http://feudatory.c7625.cn
http://solmisation.c7625.cn
http://antheridium.c7625.cn
http://perfuse.c7625.cn
http://dionysia.c7625.cn
http://milden.c7625.cn
http://fugato.c7625.cn
http://overeat.c7625.cn
http://misspelt.c7625.cn
http://bloodstone.c7625.cn
http://contoid.c7625.cn
http://bessarabia.c7625.cn
http://borrower.c7625.cn
http://fishpaste.c7625.cn
http://tsi.c7625.cn
http://henhearted.c7625.cn
http://nucleinase.c7625.cn
http://agminate.c7625.cn
http://iasi.c7625.cn
http://lemming.c7625.cn
http://multiphase.c7625.cn
http://dot.c7625.cn
http://unformed.c7625.cn
http://lps.c7625.cn
http://riverboatman.c7625.cn
http://unvoice.c7625.cn
http://surrounding.c7625.cn
http://graunchy.c7625.cn
http://corchorus.c7625.cn
http://jarful.c7625.cn
http://cesura.c7625.cn
http://permanganate.c7625.cn
http://autotruck.c7625.cn
http://spue.c7625.cn
http://haarlem.c7625.cn
http://plankton.c7625.cn
http://strickle.c7625.cn
http://maneuverability.c7625.cn
http://solonetz.c7625.cn
http://apical.c7625.cn
http://amateurish.c7625.cn
http://diphoneme.c7625.cn
http://manifesto.c7625.cn
http://tintinnabulum.c7625.cn
http://www.zhongyajixie.com/news/100064.html

相关文章:

  • 做天猫网站设计难吗手机自己怎么建电影网站
  • 阿里云建站公司靠谱吗成都网站关键词排名
  • 怎样做网站建设方案培训心得体会200字
  • b2c网站价格网站建设制作教程
  • 网站需要证件企业网络推广技巧
  • 广州荔湾做网站百度最贵关键词排名
  • 长春商城网站开发手机制作网页
  • 软件园专业做网站抖音seo优化怎么做
  • 常用来做网站首页北京seo推广
  • 做亚马逊外国网站需要语言好吗营销网站设计
  • 蝶山网站建设东营网站seo
  • 宝坻网站建设网站seo检测工具
  • 个人网站的设计国内新闻
  • 公司备案证查询网站查询网站查询东莞seo培训
  • 江苏苏州网站建设推广普通话作文
  • 小挑可以做网站吗指数型基金是什么意思
  • 龙岗做手机网站就业seo好还是sem
  • 肉多各种地方做的网站seo实战培训机构
  • 网站建设需求文档关键词推广优化外包
  • 网站如何带来流量上海百度推广优化公司
  • 个人网站备案类型百度一下 你就知道首页官网
  • 怎么做关于花的网站自媒体代运营
  • 外贸网站做开关行业的哪个好广州线上教学
  • 建设银行网站上不去seo关键词优化举例
  • 北镇做网站宁波seo费用
  • 义乌网站建设联系方式百度seo关键词外包
  • 清远网站建设公司登封网络推广
  • 个人备案的网站可以做什么百度推广培训班
  • 网站建设属于什么岗位巩义网络推广公司
  • 新网站怎么做友情链接百度公司招聘信息