企业手机网站建设流程图,企业展厅设计公司哪家好怎么样,宁波关键词排名优化平台,婚恋网站排名前10目录 一、算法
1、算法概述
2、算法的5个特性
3、设计算法的标准
二、时间复杂度
1、时间复杂度的介绍
2、渐进时间复杂度的求法
3、计算时间复杂度的代码举例#xff08;平方阶示例#xff09;
4、时间复杂度排序
三、空间复杂度 一、算法
1、算法概述
算法就是解…目录 一、算法
1、算法概述
2、算法的5个特性
3、设计算法的标准
二、时间复杂度
1、时间复杂度的介绍
2、渐进时间复杂度的求法
3、计算时间复杂度的代码举例平方阶示例
4、时间复杂度排序
三、空间复杂度 一、算法
1、算法概述
算法就是解决问题的方法。以数据结构来表示出来对于问题的解决方法。一般算法的表示有三种方法①自然语言表示②程序代码③类C语言。
2、算法的5个特性
有穷性:算法的实现是通过又穷步就可完成且每一步都是有穷时间内完成的。
确定性算法实现的输出结果唯一对于算法中的所要执行的操作有确切的规定不会存在二义性。
可行性所有操作在有限时间内可实现。
输入一个算法有零个或多个输入。
输出一个算法有一个或多个输出。
3、设计算法的标准
正确性不单单是程序语法正确还要在运行一些能涵盖所有情况的特殊数据后能够准确的得到及结构。
可读性算法是给人看的要让读者能够读懂而不会在阅读中有很多看不明白的地方。多增加注释在很多变量和语句中增加解释让算法变得清晰。
健壮性随机应变能力。当输入非法的数据时不会乱七八糟的随意输出而会做出正确的反应或者得到错误提醒的输出语句。
高效性高效分为时间高效和空间高效。效率高则时间短所需空间小。但是有时候时间效率和空间效率是矛盾的想要时间效率高有时候会消耗很大的空间。
二、时间复杂度
算法时间效率是依据程序在计算机上运行所消耗的时间来度量的。度量方法有事后统计和事前分析两种方法而人们一般会用后者在编写程序之前对算法所消耗资源进行估算。
1、时间复杂度的介绍
一个算法的运行时间是每条语句的执行次数ⅹ该语句执行一次所需要的时间
for(i0;in;i){ //频度为n1for(i0;in;i){ //频度为n*(n1)kk*2;}
}
上面代码段的运行时间用含n的函数表示为f(nn²2n1
上式函数的同阶函数为n²
我们用O来表示数量级则T(n)O(f(n))O(n²T(n)即为上述算法的渐进时间复杂度简称时间复杂度。
2、渐进时间复杂度的求法
大O符号Big O notation是用于描述函数渐进行为的数学符号。 推导大O阶方法:
用常数1取代运行时间中的所有加法常数。在修改后的运行次数函数中只保留最高阶项。如果最高阶项存在且不是1则去除与这个项目相乘的常数。得到的结果就是大O阶。
3、计算时间复杂度的代码举例平方阶示例 int x0;y0; for(k1;kn;k){x;} for(i1;in;i){for(j1;jn;j){y; }}
对循环语句只需考虑循环体中语句的执行次数以上程序段中频度最大的语句是第(7)行其频度为f(n)n²所以该算法的时间复杂度为T(n)O(n²)称为平方阶。
笔者的理解是算法的时间复杂度是由最深层循环内的基本语句的频度f(n)决定的最深处的语句就是频度最大的语句。
4、时间复杂度排序
时间复杂度T(n)按数量级递增顺序为从左到右复杂度升高) 三、空间复杂度
时代发展科技进步人们都不是很关注空间的占用情况了因为现在的计算机的存储空间都很大很大。
空间复杂度算法所需存储空间(寄存器的量度。 记作S(nO(f(n))
算法所占用的空间包括
①算法本身所占用的空间输入输出以及定义的变量等所占用的空间。
②算法要使用的辅助空间。
笔者认为计算空间复杂度是注重在于寻找定义因为变量是在定义的时候才会被分配空间在程序中寻找总共分配了多少个空间给变量空间复杂度就是多少空间复杂度的差异取决于辅助空间的大小分配辅助空间分配的多少就能间接的体现出来空间复杂度的大小。
值得注意的是函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。
今天的分享就到这啦 如果我的文章对您有帮助
希望可以 “点赞” “收藏” “关注” 一键三连支持一下哦
想了解更多知识请前往故里♡927的博客
如果以上内容有什么问题欢迎留言大家一起学习共同进步。 我们下期见~~