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

网络服务提供者发现未成年通过网络诈骗某网站seo诊断分析

网络服务提供者发现未成年通过网络诈骗,某网站seo诊断分析,网上花钱做ppt的网站,定制平台Hello,好久没有更新了哦,已经开始学习数据结构了,这篇文章呢就是对刚学数据结构所接触到的时间复杂度进行一个分享哦,如果有错误之处,大家记得拍拍我哦~ 既然要讨论时间/空间复杂度,那我们就得知道时间/空…

  Hello,好久没有更新了哦,已经开始学习数据结构了,这篇文章呢就是对刚学数据结构所接触到的时间复杂度进行一个分享哦,如果有错误之处,大家记得拍拍我哦~

既然要讨论时间/空间复杂度,那我们就得知道时间/空间复杂度是什么,那到底什么是时间复杂度,什么是空间复杂度呢?

一、时间复杂度

时间复杂度:它是一个函数,这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用O()来表示,不包括这个函数的低价项和首项系数。一个算法所花费的时间与其中语句的执行次数成正比例,那么,算法中的基本操作的执行次数就是算法的时间复杂度。

理解:算法的时间复杂度它是一个函数,其定量的描述了该算法的运行时间。但是,仔细一想,一个算法执行所消耗的时间,从理论上来说的话,它是不可以算出来的,只有在你把程序放在机器上跑起来时,我们才能够知道该算法在整个执行的过程中所消耗的时间。

说这么多,其实用一句话总结:就是找到某条基本语句与问题规模N之间的数学表达式,也就是算出了该算法的时间复杂度

注:时间复杂度通常用O()来表示。

常见的有:O(1),O(n),O(logn),O(nlogn),O(n^2)等

下面详细介绍一下:

O(1):常数时间复杂度。这类可以说明算法的执行时间不随输入规模的增大而增长。比如,数组的访问,哈希表的查找(后期会更)。

O(n):线性时间复杂度。这类可以说明算法的执行时间随输入规模的增大而增长,其增长速度与输入规模成正比。比如,数组的遍历,简单查找等。

O(logn):对数时间复杂度。这类可以说明算法的执行时间随输入规模的增大而增长。

O(nlogn):线性对数时间复杂度。这类可以说明算法的执行时间随着输入规模的增大而增长,但增长速度比线性快。比如,归并排序,快速排序等。

O(n^2):平方时间复杂度。这类可以说明算法的执行速度随着输入规模的增大而增长,且增长速度很快。比如,冒泡排序,选择排序等。

说明:这里提到的排序后面会更新的,大家在这里先听听哦,这里主要是掌握对时间复杂度的理解。

举个例子:

大家看这段代码:

// 请计算一下Func1中++count语句总共执行了多少次?
void Func1(int N)
{int count = 0;for (int i = 0; i < N; ++i){for (int j = 0; j < N; ++j){++count;}}for (int k = 0; k < 2 * N; ++k){++count;}int M = 10;while (M--){++count;}printf("%d\n", count);
}

实际上当我们掌握这个知识点并且有个很多的练习时,我们就知道,在计算时间复杂度的时候,我们其实并不一定要计算精确的执行次数,我们只需要计算知道大概的执行次数就可以啦~ 提高一个知识肯定就会有新的知识点的出现,这里我们就使用大O的渐进表示法。
接下来我们就介绍一下大O的渐进表示法的规则和该注意的点:
大O符号:用于描述函数渐进行为的数学符号。
规则:
(1)用常数1取代运行时间中的所有加法常熟。
(2)在修改后的运行次数函数中,只保留最高阶项。
(3)如果最高阶项存在但不是1时,这时就去除与这个项目相乘的常数,,从而得到的结果就是大O阶。
通过这几条规则,我们可以总结出大O的渐进表示法是去掉了那些对结果影响不大的项,以简洁明了的方式表示出了该算法的执行次数。
当然,讨论一个事,必然会分类讨论,那么,时间复杂度的情况也是分类讨论(最好,最坏,平均)
分类讨论:
最好时:任意输入规模的最大运行次数,也就是上界。
最坏时:任意输入规模的最小运行次数,也就是下界。
平均时:任意输入规模我们最期望,最想要让它达到的运行次数,简单点说,就是理想型嘛,哈哈
当然,在实际情况中,大家最应该关注且需要密切关注的得是算法的最坏运行情况,所以数组中搜时间复杂度为O(N).

算法的时间复杂度分为:

(1)最好时间复杂度:指的是算法计算量可能达到的最小值。

(2)最坏时间复杂度:指的是算法计算量可能达到的最大值。

(3)平均时间复杂度:指算法在所有可能情况下,按照输入实例以等概率出现时,算法计算量的加权平均值。

时间复杂度主要衡量一个算法的运行速度的快慢,空间复杂度主要衡量一个算法运行所需要的额外空间。

二、空间复杂度

空间复杂度:也是一个数学表达式,是对一个算法在运行过程当中临时占用存储空间大小的量度,换句话说,也就是额外占取的空间的大小。空间复杂度不是程序占用了多少空间,因为讲这个其实没有多大意义,所以空间复杂度算的其实是变量的个数。当然,都是复杂度嘛,空间复杂度和时间复杂度的规则基本大差不差,同样使用大O渐进表示法。
注:空间复杂度基本上是O(1)/O(N),其他不怎么常见哦~
接下来举例子说明哦~
a:计算阶乘的时间复杂度
阶乘递归的空间复杂度是O(N);

b:计算冒泡排序的空间复杂度

// 计算BubbleSort的空间复杂度?
void BubbleSort(int* a, int n)
{assert(a);for (int end = n; end > 0; --end){int exchange = 0;for (int i = 1; i < end; ++i){if (a[i - 1] > a[i]){Swap(&a[i - 1], &a[i]);exchange = 1;}}if (exchange == 0)break;}
}

思路:重复走过要排序的数列,一次比较两个元素,如果它们的顺序不太对劲,就把它们错误的顺序交换过来。这个“工作”是重复的进行知道不再需要交换,换句话说这个数列已经排序完成了。

这里,冒泡排序的辅助变量只是一个临时变量,而且其不会随着排序规模的扩大而因此改变,所以它的空间复杂度为O(1)。

   不过,这里要提一嘴的是,对于算法的性能,需要从时间和空间的使用情况来评价。一个好的算法,应该是同时具备时间复杂度和空间复杂度都较低的特性,但是,从实际情况来看的话,对于某个算法问题,要想使得时间复杂度和空间复杂度都优化是蛮困难的。如果说降低时间复杂度的话,那么往往会是它的空间复杂度提高。所以,在通常情况下,在算法设计的过程当中,一般会通过空间换时间的做法,牺牲一部分计算机存储空间,从而来提升整个算法的运行速度。

好啦,关于数据结构中关于 时间复杂度和空间复杂度的介绍先到这里啦,后期有时间的话还会举一些更为详细的例子和大家一起进步~

看到这里,支持一下小编叭~ 如果有错误之处,大家记得评论区留言吖~

http://www.mmbaike.com/news/36911.html

相关文章:

  • 做电源的网站百度网盘客服24小时电话人工服务
  • 如何做好公司网站建设内容企业推广
  • 网站的大图标怎么做跨境电商哪个平台比较好
  • wordpress后台菜单添加设置按钮seo数据分析哪些方面
  • 独立网站建设步骤网络竞价
  • 深圳网站建设费用大概下载百度网盘app
  • 做网站设计需要多少钱近期新闻热点大事件
  • 浏览器直接进入网站在百度怎么发布作品
  • 企业网站怎么推广友情链接怎么添加
  • 利用php做网站百度收录情况查询
  • 北京学网站开发做一个网站要多少钱
  • 爬知乎文章做网站seo学校培训班
  • 网站怎样做seo视频广告
  • 重庆主城区疫情最新消息seo内部优化包括哪些内容
  • 网站制作中英文天津有哪些平台可以发布推广信息
  • 建企业版网站多久软文平台有哪些
  • 淘宝建站服务仁茂网络seo
  • 网页设计与制作智慧树单元检测答案seo博客
  • 国家标准下载网免费商丘seo优化
  • p2p网站如何做推广百度数据开放平台
  • 找国外供应商去哪个网站最新舆情信息网
  • js可以做动态网站吗合肥网站设计
  • 网站建设项目的费用做什么科目酒店网络营销推广方式
  • 怎么做存储网站百度上海总部
  • 建设银行网站用户权限谷歌广告上海有限公司
  • 阿里巴巴网站维护要怎么做企业网站推广的方法
  • b2b商城网站建设seo关键词优化工具
  • 温州网络公司网站建设上海关键词排名手机优化软件
  • 做窗帘的网站竞价排名适合百度这样的网络平台吗
  • wordpress ajax翻页自动seo网站源码