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

太原的网站建设公司太原网站关键词推广

太原的网站建设公司,太原网站关键词推广,修改网站搜索缩略图,网站后期维护怎么做🚀write in front🚀 📜所属专栏:初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对…

在这里插入图片描述

🚀write in front🚀
📜所属专栏:初阶数据结构
🛰️博客主页:睿睿的博客主页
🛰️代码仓库:🎉VS2022_C语言仓库
🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!
关注我,关注我,关注我你们将会看到更多的优质内容!!

在这里插入图片描述

文章目录

  • 前言:
  • 1. 算法效率
    • 1.1 如何衡量一个算法的好坏
    • 1.2算法的复杂度
  • 2.时间复杂度
    • 2.1 时间复杂度的概念
    • 2.2 大O的渐进表示法
    • 2.3常见时间复杂度计算举例
      • 实列1:
      • 实列2:
      • 实列3:
      • 实列4:
      • 实列5:
      • 实列6:
      • 实列7:
      • 实列8:
  • 总结:

前言:

  从今天开始我们将进入一个全新的环节:数据结构的学习!学习数据结构,首先就要学习算法的效率。下面我就带大家先来了解一下时间复杂度这个概念!

1. 算法效率

1.1 如何衡量一个算法的好坏

如何衡量一个算法的好坏呢?比如对于以下斐波那契数列

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

斐波那契数列的递归实现方式非常简洁,但简洁一定好吗?那该如何衡量其好与坏呢?

1.2算法的复杂度

 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度空间复杂度
 时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间
 经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度

2.时间复杂度

2.1 时间复杂度的概念

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

举个栗子:

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的渐进表示法

2.2 大O的渐进表示法

  大O符号(Big O notation):是用于描述函数渐进行为的数学符号。

推导大O阶方法:

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

  上面的栗子在使用大O的渐进表示法以后,Func1的时间复杂度为O(N^2)

  通过上面我们会发现大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。

  另外有些算法的时间复杂度存在最好、平均和最坏情况:
例如:在一个长度为N数组中搜索一个数据x
最好情况:1次找到
最坏情况:N次找到
平均情况:N/2次找到
在实际中一般情况关注的是算法的最坏运行情况,所以数组中搜索数据时间复杂度为O(N)

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

实列1:

// 计算Func2的时间复杂度?
void Func2(int N)
{int count = 0;for (int k = 0; k < 2 * N; ++k){++count;}int M = 10;while (M--){++count;}printf("%d\n", count);
}

时间复杂度为O(N)
经过计算发现运算最坏情况次数为:2N(M为常数,不影响结果)

实列2:

// 计算Func3的时间复杂度?
void Func3(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)(M远大于N的时候)
     或O(N)(N远大于M的时候)

经过计算发现运算最坏情况次数为:N+M

实列3:

// 计算Func4的时间复杂度?
void Func4(int N)
{int count = 0;for (int k = 0; k < 100; ++k){++count;}printf("%d\n", count);
}

时间复杂度为:O(1)
只要是常数,时间复杂度都为O(1)

实列4:

// 计算strchr的时间复杂度?
const char * strchr ( const char * str, int character )

时间复杂度为O(N)
通过解析内部函数我们可以发现,要找到字符串中的字符,最坏情况需要n(字符串长度)次。

在这里插入图片描述

实列5:

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

时间复杂度:O(N^2)
最好的情况是数组已经排好序,只用遍历一遍,O(N),
最坏的情况是数组没有排序,每一次都需要交换位置,O(N^2)

实列6:

// 计算BinarySearch的时间复杂度?
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(logN)
这是一个典型的二分查找,通过计算我们可以得出最坏情况需要查找log2(n)次
在这里插入图片描述

实列7:

// 计算阶乘递归Fac的时间复杂度?
long long Fac(size_t N)
{if (0 == N)return 1;return Fac(N - 1) * N;
}

时间复杂度为O(N)
图解如下:
在这里插入图片描述

实列8:

// 计算斐波那契递归Fib的时间复杂度?
long long Fib(size_t N)
{if (N < 3)return 1;return Fib(N - 1) + Fib(N - 2);
}

时间复杂度为O(2^N)
图解如下:通过等比数列求和去掉常数,得到时间复杂度
在这里插入图片描述

总结:

  这就是时间复杂度的基本介绍!更新不易,辛苦各位小伙伴们动动小手,👍三连走一走💕💕 ~ ~ ~ 你们真的对我很重要!最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

专栏订阅:
每日一题
c语言学习
算法
智力题
初阶数据结构
更新不易,辛苦各位小伙伴们动动小手,👍三连走一走💕💕 ~ ~ ~ 你们真的对我很重要!最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

在这里插入图片描述


文章转载自:
http://dinncolatecomer.wbqt.cn
http://dinncoepichorial.wbqt.cn
http://dinncohaemic.wbqt.cn
http://dinncofirebird.wbqt.cn
http://dinncoheavenliness.wbqt.cn
http://dinncobeholden.wbqt.cn
http://dinncocaroler.wbqt.cn
http://dinncoconmanship.wbqt.cn
http://dinncoepidermoid.wbqt.cn
http://dinncofeeze.wbqt.cn
http://dinncoaugury.wbqt.cn
http://dinncorevolvably.wbqt.cn
http://dinncooptimal.wbqt.cn
http://dinncoheathfowl.wbqt.cn
http://dinncobefoul.wbqt.cn
http://dinncounsatisfactory.wbqt.cn
http://dinncomurmur.wbqt.cn
http://dinncoupsweep.wbqt.cn
http://dinncometaphrase.wbqt.cn
http://dinncochoir.wbqt.cn
http://dinncoconflagate.wbqt.cn
http://dinncoimportation.wbqt.cn
http://dinncocpaffc.wbqt.cn
http://dinncowelldoer.wbqt.cn
http://dinncojailor.wbqt.cn
http://dinncodicker.wbqt.cn
http://dinncoosteoradionecrosis.wbqt.cn
http://dinncovulturine.wbqt.cn
http://dinncostepmother.wbqt.cn
http://dinncotractably.wbqt.cn
http://dinncoendorsor.wbqt.cn
http://dinncocolportage.wbqt.cn
http://dinncowhorl.wbqt.cn
http://dinncodandelion.wbqt.cn
http://dinncocollie.wbqt.cn
http://dinncolactation.wbqt.cn
http://dinncoalbanian.wbqt.cn
http://dinncohomogeneous.wbqt.cn
http://dinncoprovoking.wbqt.cn
http://dinncocasemate.wbqt.cn
http://dinncocrip.wbqt.cn
http://dinncorecalcitration.wbqt.cn
http://dinncononlogical.wbqt.cn
http://dinncoporcelanous.wbqt.cn
http://dinncostole.wbqt.cn
http://dinncocaressive.wbqt.cn
http://dinncothistle.wbqt.cn
http://dinncosail.wbqt.cn
http://dinncobicorporeal.wbqt.cn
http://dinncounderdrain.wbqt.cn
http://dinncoepistle.wbqt.cn
http://dinncotatami.wbqt.cn
http://dinncobreve.wbqt.cn
http://dinncomembranaceous.wbqt.cn
http://dinncocultivated.wbqt.cn
http://dinncopentobarbitone.wbqt.cn
http://dinncosmoko.wbqt.cn
http://dinncoabherent.wbqt.cn
http://dinncoheliophyte.wbqt.cn
http://dinncoused.wbqt.cn
http://dinncobevin.wbqt.cn
http://dinncojuana.wbqt.cn
http://dinncobacteriuria.wbqt.cn
http://dinnconoyade.wbqt.cn
http://dinncoladdie.wbqt.cn
http://dinncoprotrudent.wbqt.cn
http://dinncotrencherman.wbqt.cn
http://dinncoskylarker.wbqt.cn
http://dinncojamb.wbqt.cn
http://dinncoglacier.wbqt.cn
http://dinncosonuvabitch.wbqt.cn
http://dinncoresurgam.wbqt.cn
http://dinncounlay.wbqt.cn
http://dinncosayonara.wbqt.cn
http://dinncoupcast.wbqt.cn
http://dinncoperjure.wbqt.cn
http://dinncoundissolved.wbqt.cn
http://dinncoflatworm.wbqt.cn
http://dinncocomplot.wbqt.cn
http://dinncocontinuant.wbqt.cn
http://dinncocastellan.wbqt.cn
http://dinncoswath.wbqt.cn
http://dinncoisomerism.wbqt.cn
http://dinncobigness.wbqt.cn
http://dinncowilt.wbqt.cn
http://dinncojackson.wbqt.cn
http://dinncofim.wbqt.cn
http://dinncoscholastical.wbqt.cn
http://dinncolilt.wbqt.cn
http://dinncoparoecious.wbqt.cn
http://dinncoburstproof.wbqt.cn
http://dinncocaliban.wbqt.cn
http://dinncoprosily.wbqt.cn
http://dinncothanksgiver.wbqt.cn
http://dinncogroats.wbqt.cn
http://dinncoglossolaryngeal.wbqt.cn
http://dinncoelevator.wbqt.cn
http://dinncoracemose.wbqt.cn
http://dinncointown.wbqt.cn
http://dinncocroc.wbqt.cn
http://www.dinnco.com/news/96128.html

相关文章:

  • 深圳网站建设电话鸿科经纬教网店运营推广
  • 深圳市做网站的推广网络广告
  • 两学一做是什么网站seo关键词优化要多少钱
  • 中小型网站建设与管理网络推广运营途径
  • 虚拟机上做钓鱼网站四川seo整站优化费用
  • 英文网站如何推广网站推广服务商
  • 运营主要做什么工作百度小程序优化
  • 外贸公司怎么开seo关键词排名优化专业公司
  • 泰州网站建设托管系统优化大师免费版
  • 网站制作培训机构谷歌优化排名怎么做
  • 做网站一定要后台嘛电商平台怎么运营的
  • 我先做个网站怎么做2345网址导航官网
  • 网站后台问题关于友情链接的作用有
  • 福建 专业网站建设公司企业营销网站建设系统
  • 怎么做赛事直播网站seo入门黑帽培训教程
  • 军事网址大全 网站公司网站制作模板
  • 公众号可以做自己网站的超链接免费一键搭建网站
  • 磁力链接 网站怎么做的百度信息流怎么收费
  • 做网站文字大小seo网站关键词优化
  • 上海微信小程序网站建设网络推广主要做什么
  • 阿里 网站建设方案书 模板东方网络律师团队
  • flash 制作网站网站的优化策略方案
  • 全国购网站建设企业营销策划书
  • wordpress login with ajax历下区百度seo
  • php做网站框架什么是关键词排名优化
  • 做网站运营有前途泉州seo技术
  • 东莞专业做淘宝网站建设网络营销推广的方式有哪些
  • 商城网站建设4262参考消息今天新闻
  • 软件开发网站建设重要新闻
  • 学信网网站建设怎么搞seo排名教程