算法的时间复杂度和空间复杂-简单介绍

发布时间:2021-09-24 23:11:32

算法的时间复杂度和空间复杂-简单介绍

算法的**时间复杂度(Big O)**是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐*的,亦即考察输入值大小趋*无穷时的情况。
[大0表示法] 算法的渐进时间复杂度
T(n)=O(f(n))


 for (i=1; i<=n; i++)

   x++;

上述代码for循环的时间复杂度O(1+3n)=O(n)。
这里面一旦n接*无限大的时候1直接忽略,3也可以直接忽略


for (i=1; i<=n; i++)

   for (j=1; j<=n; j++)

   x++;

上述代码for循环的时间复杂度O(n^2)。


for (i=1; i<=n; i++)

   x++;
for (i=1; i<=n; i++)

   for (j=1; j<=n; j++)

   x++;

上述代码for循环的时间复杂度O(n+n^2) =O(n^2)。
在n的*方面前,n只能当一个常数。


int x=0;
int y=1;
int temp =x;
x=y;
y=temp;

上述代码for循环的时间复杂度O(1)。


for(int i=0;i<=n;i++)
{
int x=1;
while(x {
x=x*2
}
}

上述代码for循环的时间复杂度O(nlogN)。


for (i=1; i<=n; i++)

   for (j=1; j<=m; j++)

   x++;

上述代码for循环的时间复杂度O(nm)。


**空间复杂度(Space Complexity)**是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。


空间复杂度:内存空间的增长的趋势
常用的空间复杂度O(1),O(n),O(n^2)。


int x=0;
int y=1;
int temp =x;
x=y;
y=temp;

空间复杂度:O(1)。


int[] newArray = new int[n];
for(int in=0;i{
newArray[i]=i;
}

空间复杂度:O(n)。


总结:时间空间复杂度=时间和空间增长的趋势

相关文档

  • 不倒绒是什么面料?不倒绒多少钱一斤
  • 转正自我鉴定七篇
  • 【实用】七年级描写夏天的作文400字三篇
  • 小米5手机开不了机一直重启怎么办
  • 同窗好友的词语-描写同窗好友300字作文
  • 硅光子平台开发获重要成果
  • Java高级开发工程师-互联网公司经久不衰的常青树
  • 适合二十多岁的男生穿搭有哪些男生宽松搭配推荐
  • 会计电算化求职自荐信推荐4篇
  • NLP论文笔记-新标签的关系抽取
  • 初三班主任新年贺词
  • 正月十五早安的祝福语
  • 二周岁生日祝福语有哪些
  • 谷歌浏览器怎么调试js
  • Android第一课:android拨打电话
  • 上海市急救医疗服务条例
  • 以意逆志的近义词
  • 合作成功的例子
  • Javascript 中截取小数位并实现四舍五入的方法
  • 冬天要怎么吃才能减肥
  • 九上语文文学常识题目
  • 女性健身需要注意这三方面
  • 新一轮思想解放,可以从户籍改革上“破土”
  • 致医护人员的一封信
  • 【Linux && Mac OS】Mac OS 和 Linux 的内核有什么区别
  • 人生一向不会如你所愿杂文随笔
  • 2015年下半年网络工程师考试报名相关事宜
  • [Java]-Spring中事件EventListener与Guava
  • 算法---面试题/--求N的阶乘N!中末尾0的个数
  • 湖南石油化工职业技术学院2018年6月英语四级报名时间及报名条件:岳阳石油职业技术学院
  • 猜你喜欢

    电脑版