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

做性事的视频网站网站权重划分

做性事的视频网站,网站权重划分,广东疫情最新通知今天,网络广告产生于哪个国家目录 1.算法效率 2.时间复杂度 2.1定义 2.2大O渐近表示法 2.3常见时间复杂度计算举例 3.空间复杂度 3.1定义 3.2常见空间复杂度计算举例 1.算法效率 算法的效率常用算法复杂度来衡量,算法复杂度描述了算法在输入数据规模变化时,其运行时间和空间…

目录

1.算法效率

2.时间复杂度

2.1定义

2.2大O渐近表示法

2.3常见时间复杂度计算举例

3.空间复杂度

3.1定义

3.2常见空间复杂度计算举例


1.算法效率

算法的效率常用算法复杂度来衡量,算法复杂度描述了算法在输入数据规模变化时,其运行时间和空间占用情况的变化趋势。

算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源,所以我们常从时间和空间两个维度来评判算法的好坏,即时间复杂度和空间复杂度。

在计算机诞生之初,储存容量很小,所以对于空间很是在意,但随着计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度,所以我们如今已经不需要再特别关注一个算法的空间复杂度。

2.时间复杂度

2.1定义

时间复杂度是衡量算法执行所需时间的指标,表示算法执行时间随输入规模增加而增长的速度。

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有我们把的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。

一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

2.2大O渐近表示法

大O渐近表示法是一种用于描述算法时间复杂度的符号表示方法。它表示算法的最坏情况下执行时间的上界。在大O表示法中,O后面跟着一个函数,表示该函数的增长率与输入规模的关系。

大O渐近表示法的推导:

  1.   用常数1取代运行时间中的所有加法常数。
  2.   在修改后的运行次数函数中,只保留最高阶项。
  3.   如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。 

下面以一段代码介绍大O渐近表示法的推导:

#include<stdio.h>
void Func1(int N)
{int count = 0;for (int i = 0; i < N; ++i){for (int j = 0; j < 2 * N; ++j){++count;}}for (int k = 0; k < 2 * N; ++k){++count;}int M = 10;while (M--){++count;}printf("%d\n", count);
}int main()
{Func1(5);return 0;
}

可以看出

F(N) = N * (2 * N) + 2 * N + 10

首先我们用常数1取代运行时间中的所有加法常数:

F(N) = N * (2 * N) + 2 * N + 1

然后保留最高阶项:

 F(N) = 2 * N^2

如果最高阶项存在且不是1,则去除与这个项目相乘的常数:

 F(N) = N^2

即:

O(N^2) 

2.3常见时间复杂度计算举例

void Func1(int N, int M)
{int count = 0;for (int k = 0; k < M; ++ k){++count;}for (int k = 0; k < N ; ++ k){++count;}printf("%d\n", count);
}

时间复杂度:O(M + N) 


 

void Func2(int N)
{int count = 0;for (int k = 0; k < 100; ++ k){++count;}printf("%d\n", count);
}

时间复杂度:O(1)


 

void bubbleSort(int arr[], int n) 
{int i, j, temp;for (i = 0; i < n-1; i++) {for (j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}
}

对于长度为n的数组,冒泡排序的最坏情况时间复杂度为O(n^2)。这是因为在最坏情况下,需要进行n-1轮比较和交换,每轮最多需要进行n-1次比较和交换操作。

在最好情况下,即输入数组已经是有序的,冒泡排序只需要进行一次遍历,即O(n)的时间复杂度

所以它的大O渐近表示法:

O(N^2) 


 

int BinarySearch(int* a, int n, int x)
{assert(a);int begin = 0;int end = n - 1;while (begin < end){int mid = begin + ((end - begin) >> 1);if (a[mid] < x)begin = mid + 1;else if (a[mid] > x)end = mid;elsereturn mid;}return -1;
}

二分查找的时间复杂度为 O(\log_{2}N) ,因为每一次迭代都会将查找范围减半。因此,总的查找时间取决于进行了多少次这样的迭代。由于每次迭代都将查找范围减半,所以查找时间以对数的方式增长,即时间复杂度为 O(\log_{2}N)


 

long long Fac(size_t N)
{if (0 == N)return 1;return Fac(N - 1) * N;
}

每次调用函数 Fac(N),都会产生一个新的函数调用 Fac(N - 1),直到 N 减小到 0 为止。因此,这个递归树的深度为 N。在每一层递归中,都会进行一次乘法运算。

因此,这个递归函数的时间复杂度为 O(N)


 

long long Fib(size_t N)
{if (N < 3)return 1;return Fib(N - 1) + Fib(N - 2);
}

要计算这个递归函数的时间复杂度,可以使用递归树的方法来分析(如下图)。在递归树中,每个节点代表一次函数调用,树的高度表示递归的深度,而每层的节点数表示每次递归调用的次数。

对于斐波那契数列的递归函数,由于每次调用会分解为两个子问题(计算第N-1项和第N-2项),因此递归树的分支数是2且每个节点的时间复杂度都是O(1),因为每次递归调用都只涉及一次加法运算。递归的深度为N。

因此,这个递归函数的时间复杂度是 O(2^N),因为递归树的分支数是2,且深度为N。

 

3.空间复杂度

3.1定义

空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时开辟的额外占用存储空间大小的量度 。

‘额外’的解释:函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了,此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。

空间复杂度不是用程序占用了多少字节的空间来衡量,因为这样意义不大,空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进表示法

3.2常见空间复杂度计算举例

long long Fac(size_t N)
{if (N == 0)return 1;return Fac(N - 1) * N;
}

递归函数的空间复杂度取决于递归调用的深度。每次递归调用都会在内存中创建一个新的函数调用帧(包含函数的参数、局部变量等信息)。由于递归调用的次数与输入参数 N 的大小成正比,因此空间复杂度为 O(N)。


long long Fib(size_t N)
{if (N < 3)return 1;return Fib(N - 1) + Fib(N - 2);
}

这个斐波那契函数的时间复杂度我们已经计算过为O(2^N),那么它的空间复杂度也为 O(2^N) 吗?

先说结论,斐波那契函数的空间复杂度为O(N)。

这与函数的调用有关,要知道在函数调用时不是Fib(N - 1) 和 Fib(N - 2)一起调用的,而是调用Fib(N - 1) --> Fib(N - 2) --> ....... Fib(2)这样一层一层的调用的,每次调完上一层对的函数栈帧就已经销毁了。

所以:时间是一去不复返的,而空间是可以重复利用的。

函数栈帧详细信息见:

https://blog.csdn.net/BuiderCodes/article/details/136876577icon-default.png?t=N7T8https://blog.csdn.net/BuiderCodes/article/details/136876577


文章转载自:
http://dinncobetel.ssfq.cn
http://dinncoazt.ssfq.cn
http://dinncocolostrum.ssfq.cn
http://dinncopupillary.ssfq.cn
http://dinncotwelve.ssfq.cn
http://dinncoproslavery.ssfq.cn
http://dinncoacclimate.ssfq.cn
http://dinncosternpost.ssfq.cn
http://dinncokru.ssfq.cn
http://dinncoplench.ssfq.cn
http://dinncomonoamine.ssfq.cn
http://dinncotropolone.ssfq.cn
http://dinncokalsomine.ssfq.cn
http://dinncojcb.ssfq.cn
http://dinncoperry.ssfq.cn
http://dinncooptotype.ssfq.cn
http://dinncosandbank.ssfq.cn
http://dinncoswelling.ssfq.cn
http://dinncohaydn.ssfq.cn
http://dinncomortagage.ssfq.cn
http://dinncoexlex.ssfq.cn
http://dinncohaddock.ssfq.cn
http://dinncogaffer.ssfq.cn
http://dinncoozonous.ssfq.cn
http://dinncoexstrophy.ssfq.cn
http://dinncopsychosomatic.ssfq.cn
http://dinncoaesthetism.ssfq.cn
http://dinncogasworks.ssfq.cn
http://dinncoagential.ssfq.cn
http://dinncoxanthic.ssfq.cn
http://dinnconeddy.ssfq.cn
http://dinncoinconceivable.ssfq.cn
http://dinncoincogitable.ssfq.cn
http://dinncooverstuff.ssfq.cn
http://dinncothievishly.ssfq.cn
http://dinncovisitor.ssfq.cn
http://dinncowrongdoer.ssfq.cn
http://dinncokalmia.ssfq.cn
http://dinncononcommunicable.ssfq.cn
http://dinncoprotophloem.ssfq.cn
http://dinncodisconfirm.ssfq.cn
http://dinncorigatoni.ssfq.cn
http://dinncoxslt.ssfq.cn
http://dinncodebrett.ssfq.cn
http://dinncomatey.ssfq.cn
http://dinncoengrossing.ssfq.cn
http://dinncohedonism.ssfq.cn
http://dinncoadvisably.ssfq.cn
http://dinncoarranging.ssfq.cn
http://dinncoorifice.ssfq.cn
http://dinncoflicflac.ssfq.cn
http://dinnconovillero.ssfq.cn
http://dinncointragovernmental.ssfq.cn
http://dinncoexpand.ssfq.cn
http://dinncoguava.ssfq.cn
http://dinncoldap.ssfq.cn
http://dinncoexperimenter.ssfq.cn
http://dinncoantihuman.ssfq.cn
http://dinncotheosophy.ssfq.cn
http://dinncodeplore.ssfq.cn
http://dinncodigress.ssfq.cn
http://dinncomisspell.ssfq.cn
http://dinncodisbranch.ssfq.cn
http://dinncopsychopathology.ssfq.cn
http://dinncoashler.ssfq.cn
http://dinncoaesthophysiology.ssfq.cn
http://dinncodemoiselle.ssfq.cn
http://dinncoconceivable.ssfq.cn
http://dinncogleamy.ssfq.cn
http://dinncosalesmanship.ssfq.cn
http://dinncoadventure.ssfq.cn
http://dinncomadrono.ssfq.cn
http://dinncodoggish.ssfq.cn
http://dinncoaxone.ssfq.cn
http://dinncodevastatingly.ssfq.cn
http://dinncosark.ssfq.cn
http://dinncounderactivity.ssfq.cn
http://dinncoparvulus.ssfq.cn
http://dinncovisuomotor.ssfq.cn
http://dinncolymphangioma.ssfq.cn
http://dinncotiffin.ssfq.cn
http://dinncotetrarchy.ssfq.cn
http://dinncoearthborn.ssfq.cn
http://dinncouniate.ssfq.cn
http://dinncoepistrophy.ssfq.cn
http://dinncodioxirane.ssfq.cn
http://dinncoinby.ssfq.cn
http://dinncobonbonniere.ssfq.cn
http://dinncocookery.ssfq.cn
http://dinncotabourine.ssfq.cn
http://dinncolimmasol.ssfq.cn
http://dinncojackass.ssfq.cn
http://dinncoannunciation.ssfq.cn
http://dinncolensed.ssfq.cn
http://dinncocognitive.ssfq.cn
http://dinncorideau.ssfq.cn
http://dinncoinsititious.ssfq.cn
http://dinncol2tp.ssfq.cn
http://dinncohaplography.ssfq.cn
http://dinncowingman.ssfq.cn
http://www.dinnco.com/news/158542.html

相关文章:

  • 宁乡网站建设西安网站建设制作
  • php个人网站论文搜索引擎排名的三大指标
  • org做后缀的网站宠物美容师宠物美容培训学校
  • 网站怎么做dns解析2023年8月新冠又来了
  • 淘宝联盟链接的网站怎么做厦门seo蜘蛛屯
  • 做网站都去哪申请网址湖南专业seo推广
  • 官方网站模版微信指数查询入口
  • 网站建设 枫子科技杭州seo运营
  • 自己怎么做dj 视频网站热狗网站排名优化外包
  • 永年专业做网站百度推广怎么找客户
  • 做网站百科google网页搜索
  • 泉州网站开发联系薇网站优化招聘
  • 天津网站建设哪家好如何利用seo赚钱
  • 网站登录注册页面模板下载关键词分词工具
  • wordpress 付款插件抖音seo关键词优化
  • 微信建设网站推广链接怎么自己搞定
  • dedecms医院网站wap模板(橙色)产品市场推广计划书
  • h5 css3网站欣赏投诉百度最有效的电话
  • 网站备案是什么意思谷歌优化怎么做
  • 网站开发用不用写交互正规的教育培训机构有哪些
  • 活动 网站 源码关键词搜索爱站
  • 交友视频网站建设深圳网站seo优化公司
  • 网站追踪如何做百度推广按点击收费
  • wordpress网站语言包如何制作网址链接
  • 做设计应该看哪些网站快优吧seo优化
  • wordpress 添加分类广东知名seo推广多少钱
  • 上海贸易公司排名百度网站排名优化
  • 设计logo网站生成器百度广告一级代理
  • 一个网站怎样做两个后台湖北最新消息
  • 网站页面优化弹窗广告最多的网站