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

网站到期查询wordpress mysql port

网站到期查询,wordpress mysql port,做食品生产的网站,国外空间网站文章目录1. 算法效率1.1 什么是算法1.2 算法的好坏2. 时间复杂度2.1 什么是时间复杂度2.2 时间复杂度的计算方法2.3 大O的渐进表示法2.4 常见时间复杂度计算举例3. 空间复杂度4. 常见复杂度对比1. 算法效率 1.1 什么是算法 目前普遍认可对算法的定义是:算法是解决…

文章目录

    • 1. 算法效率
      • 1.1 什么是算法
      • 1.2 算法的好坏
    • 2. 时间复杂度
      • 2.1 什么是时间复杂度
      • 2.2 时间复杂度的计算方法
      • 2.3 大O的渐进表示法
      • 2.4 常见时间复杂度计算举例
    • 3. 空间复杂度
    • 4. 常见复杂度对比

1. 算法效率

1.1 什么是算法

目前普遍认可对算法的定义是:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每个指令表示一个或多个操作
大白话就是计算的方法,通过该方法,可以达到我们预期的计算结果。

1.2 算法的好坏

最近“九转大肠”在网络上十分火爆,小伙在制作过程中,故意的保留了“原始风味”,令评委十分“粪怒”。那为什么同样是“九转大肠”,评价却如此不一样呢?评委点评看三个方面:做菜的材料、做菜的时间、菜的味道,三者缺一不可。
在这里插入图片描述

算法也是如此,在保证计算能出我们预期的结果的前提下,还需考虑效率
即算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源。因此衡量一个算法的好坏,一般是从时间空间两个维度来衡量,即时间复杂度空间复杂度

小贴士:
时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

2. 时间复杂度

2.1 什么是时间复杂度

一个算法所花费的时间与其中语句的执行次数成正比例,总语句执行次数记为T(n)。在一般情况下,算法中基本操作重复执行的次数是问题规模n某个函数f(n),算法的时间量度记作T(n) = O(f(n))。它表示随着问题规模n的增大,算法执行时间的增长率和f(n) 增长率相同,称为算法的渐进时间复杂度,简称时间复杂度

2.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);
}

Func1执行的基本操作次数: F(N) = N2 + 2*N + 10

在这里,我们并不需要计算出准确的次数,只需要算出该函数是是属于哪个量级。即找出函数式中对结果影响最大的那个。假设这里的N为无限大,那么后面的 2*N + 10对结果的影响就微乎其微。
所以不一定要计算精确的执行次数,而只需要大概执行次数,那么这里我们使用大O的渐进表示法。

2.3 大O的渐进表示法

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

推导大O阶方法:

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

用大O的渐进表示法以后,那么Func1的时间复杂度为 :O(N2)。
另外,有些算法的时间复杂度存在最好、平均和最坏情况。
例如,要用在长度为N的数组中查找某个数据:

  • 最好的情况:第一次就找到
  • 最坏的情况:第N次才找到
  • 平均情况:N/2次找到

那我们该取哪种情况呢?举个例子,约了一个好朋友出来吃饭,预定时间12:00。

  • 按预定时间到达12:00(最坏情况),那么就只能吃个饭。
  • 都提前一小时到11:00(最好情况),先逛逛街,吃个饭、最后还能散散步。
  • 提前半小时到11:30(平均情况),吃饭->散步->带回。

那么我们肯定是说12点到嘛,如果12点之前到,就会有额外的惊喜,如果直接告诉最好的情况,实际效果可能就没那么好。
所以时间复杂度在实际情况下,关注的是算法运算最坏情况

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

O(1)

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

基本操作执行了100次,是一个确定的值,通过推导大O阶的方法,无最高阶项,常数用1表示。即时间复杂度为O(1)

O(n)

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

基本操作递归了N次,最高阶项是N,通过推导大O阶的方法,只保留最高阶项。即时间复杂度为O(n)

O(n2)

// 计算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;}
}

这里是一个冒泡排序,基本操作最好的情况执行N次,最坏情况执行N*(N-1)/2次,时间复杂度看最坏情况,再通过推导大O阶的方法,最高阶项为N2。即时间复杂度为O(n2)

O(logN)

// 计算BinarySearch的时间复杂度?
int BinarySearch(int* a, int n, int x)
{assert(a);int begin = 0;int end = n-1;// [begin, end]:begin和end是左闭右闭区间,因此有=号while (begin <= end){int mid = begin + ((end-begin)>>1);if (a[mid] < x)begin = mid+1;else if (a[mid] > x)end = mid-1;elsereturn mid;}return -1;
}

这里是一个二分查找的算法,基本操作执行情况是1次,最坏情况是O(logN)次 (ps:logN在算法分析中表示底数是2),每次查找减一半,即时间复杂度为O(logN)

小贴士:
在理论上,二分查找是一个非常牛的算法,例如在10000个数据中,它最坏情况下,大概10次就找出来了;如果用冒泡排序,则最坏需要查找 100002,这二者的差别十分之大。但是二分查找有一个前提就是,数据序列必须是一个有序序列,这就带来了很大的局限性。

3. 空间复杂度

空间复杂度也是一个数学表达式,是一个对算法在运行过程中临时占用存储空间大小的量度,算的是变量的个数,同时也使用大O渐进表示法

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

示例1:

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

在这里,调用了N次Fac阶乘函数,每调用一次,就创建一个函数栈帧,那个就开辟了N个内存空间,即空间复杂度为O(n)。

示例2:

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

该算法的时间复杂度为O(2n),那么额外申请的空间也是 2n 吗?
这里的递归并不是我们想象中一层一层往下面调用。
在这里插入图片描述
通过这两个样例的比较,我们可以总结出时间复杂度和空间复杂度的特性:

  • 时间是一去不复返的,不可重复利用
  • 空间用了需要返还,可以重复利用

4. 常见复杂度对比

在这里插入图片描述

http://www.yayakq.cn/news/941578/

相关文章:

  • 学校门户网站建设管理办法wordpress添加记录
  • 大型网站开发语言排名网络营销策划的定义
  • 网站创建器株洲网站建设网站建设
  • wordpress 默认评论桂林网站优化公司
  • 厦门安岭路网站建设徐州seo推广公司
  • 简单的网站源码怎样在百度上做网站
  • 云服务器可以放几个网站做编程的网站一个月多少钱
  • 建自己的网站做外贸vs2013 网站建设
  • 网站404是什么意思海南网站建设推广
  • 网站制作价格多少钱长沙php网站建设
  • 专业的网站公司到哪里找安卓手机搭建网页
  • 仙游住房与城乡建设局网站东莞百度快照优化排名
  • 怎么修改自己公司网站客户关系管理系统功能
  • 深圳营销型网站建网站建设类文章要发多少片
  • 网站建设教论坛诸暨做网站广告的电话
  • 百度首页网站推广多少钱一年wordpress点赞插件
  • 找出网站所有死链接wordpress get cat id
  • 网站301是什么网站效果检测
  • 做旅游计划的网站wordpress静态cdn
  • 福州公司网站建设一定要用主流程序php语言网站模块如何添加
  • 建站方案书怎么免费制作企业网站
  • 网站开发流程图和介绍自建网站需要什么手续
  • 怎么建自己的摄影网站网站使用特殊字体
  • 商城小程序开发报价平原县网站seo优化排名
  • 如何写代码做网站6网站建设流程分为哪几个阶段
  • 福州企业网站企业网站建设电话
  • 杭州行业网站建设wordpress不能添加文章
  • 精通网站建设 100浦东做营销网站
  • 小米网站建设书中国建设银行网站首页下载
  • 禄丰县住房和城乡建设局网站网络行业有哪些