3分pk10规律 _算法核心——空间复杂度和时间复杂度超详细解析

  • 时间:
  • 浏览:1

一、那先 是算法

算法

  • 有有4个 有限指令集

  • 接受这个输入(这个情况表下需要收入)

  • 产生输出

  • 一定在有限步骤后会终止

  • 每第每根指令需要:

  1. 有充分明确的目标,必须必须有歧义

  2. 计算机能出理 的范围之内

  3. 描述应不依赖于任何一种计算机语言以及具体的实现手段

确实说白了,算法什么都有有有4个 计算过程出理 那先 的问提的土妙招。亲戚亲戚朋友现在不可能 知道数据特性表示数据是如何会存储的,而“系统多多线程 =数据特性+算法”,数据特性是静态的,算法是动态的,它们加起来什么都有系统多多线程

对算法来说有输入,有输出,大约函数参数返回值。亲戚亲戚朋友写算法的后会习惯把算法封装到有有4个 函数中。

二、那先 是好的算法

好,从后面 亲戚亲戚朋友知道了那先 是算法,下面我再说那先 是好的算法

在出理 同有有4个 那先 的问提的后会,亲戚亲戚朋友通常会有什么都有种不一样的算法,区别就在于,有的算法比较笨,有的算法比较聪明,另有有4个 们如何会去衡量它们谁好谁坏呢?亲戚亲戚朋友通常有下面有有4个 指标:

  • 空间僵化 度:根据算法写成的系统多多线程 在执行时占用存储单元的长度。

  • 时间僵化 度:根据算法写成的系统多多线程 在执行时耗费时间的长度。

先举个例子说,不可能 我能 打印兩个整数,你那个系统多多线程 不可能 瞬间就给出结果了,不可能 我能 打印十万个整数呢?这你就得多等一会了。什么都有这个系统多多线程 运行的时间,就跟我后会 出理 的数据是兩个还是十万个是相关的,这个十万什么都有亲戚亲戚朋友要出理 的数据的规模。亲戚亲戚朋友把它叫做n,是有有4个 变量语录,另有有4个 们这个系统多多线程 所用的时间空间都跟这个n是有直接关系的。出理 有有4个 那先 的问提有什么都有中不同的土妙招,你在设计这个土妙招的后会,一定要把这有有4个 每项考虑清楚。一不小心,不可能 空间僵化 度太久语录,你那个系统多多线程 就不可能 直接爆掉了,非正常中断,我一会会在后面 讲,时间僵化 度不可能 太久语录,你就不可能 等很长时间都等都如此结果。

时间僵化 度



先来看后面 图片中的几组代码,我是用Python表示的,你在看的后会考虑有有4个 那先 的问提:

  1. 四组代码中,哪组的运行时间最短?

  2. 用那先 土妙招来体现算法运行的快慢?

刚才说n能必须看作数据的规模,规模不一样,运行时间肯定什么都有一样,后会所用时间什么都有好选则,不同的n会得到不同的时间,什么都有亲戚亲戚朋友用时间僵化 度来表示算法运行的快慢。

先来看下面图片中的几只生活中的事件,估计时间:



这里我能 发现亲戚亲戚朋友会用“”表示有有4个 大约,后面 还有相应的时间单位,那时间僵化 度也参照例如的土妙招:

时间僵化 度:用来评估算法运行强度的有有4个 式子



看后面 图片所示,先说print(‘Hello World’),它的时间僵化 度表示为O(1),O严格来说,它表示数学上有有4个 式子的上界,亲戚亲戚朋友能必须简单的理解为什么都有有有4个 估计,大约,大约后面 说的“”。1能必须理解为是个运行单位(例如于秒另有有4个 的单位),为那先 是O(1),不可能 print(‘Hello World’)只执行了一次,同理分析第兩个:

它的时间僵化 度表示为O(n),不可能 这组代码执行了n次。n还是个单位,同理,分析第有有4个 :

它的时间僵化 度表示为O(​),不可能 是有两层循环,什么都有是,​还是个单位。第兩个你所有人所有就能必须分析了,我能 太久此一举了。但千万我太久 说以为什么都有如此简单,咱再看下面代码图片:

看得人这个图片,你是也有感觉很良好,和你猜的差太久是吧,哈哈,我太久 说高兴的太早,告诉亲戚亲戚朋友,错了,它们的时间僵化 度也有另有有4个 的。

为那先 ?你说歌词 了,“1”是单位,但“3”也有单位,3是3乘1,就比如说在生活中,别问我一壶水烧多长时间,如此人回答说是有有4个 几分钟不可能 几只三分钟。再说第兩个,​是单位,n也是个单位,后会​比n大,什么都有亲戚亲戚朋友在估计时用大单位,就好比生活中别问我大约睡了多久,你一般说是几只小时,而也有说几只小时零几分钟,你强调的是有有4个 大约的时间,明白了吧。

什么都有正确的时间僵化 度是另有有4个 的:



第有有4个 为那先 是O(1),首先print('Hello World')打印一次和打印三次实际的影响不大吧,什么都有不管执行几只,假如它的规模不上升到n如此大的后会,换句话说,1是个单位,什么都有不管如何,不可能 这是表示近似,也有表示精确的,什么都有是O(1).好,再看下面这个图片:



当你的循环减半的后会,时间僵化 度就会变为O(logn)。什么都有我能 另有有4个 记,当算法过程突然出现循环折半的后会,僵化 度式子中会突然出现logn。

时间僵化 度小结

  • 时间僵化 度是用来估计算法运行时间的有有4个 式子(单位)

  • 一般来说,时间僵化 度高的算法比时间僵化 度低的算法慢

常见的时间僵化 度(按强度排序)

僵化 那先 的问提的时间僵化 度

如何简单快速地判断算法僵化 度

空间僵化 度



在空间僵化 度中需要注意的这个什么都有理解“空间换时间”,在研究有有4个 算法的后会,时间比空间重要。

此篇完

以上那先 什么都有对数据特性的理解,我后会 应该说全面了吧,什么都有没全面什么都有要紧,后面 学了再继续补充。

看得人有收获?如此希望老铁别吝啬你的三连击哦

1、点个推荐,让更多的人看得人这篇文章

2、关注我的原创微信公众号【泰斗贤若如】,第一时间阅读我的文章

3、欢迎关注我的博客

 【原创声明】:所有人所有原创:https://www.cnblogs.com/zyx110/