我也在学习中,有不足的地方大家请指出。

我认为下面的文章不错,我也是学习以下大佬的。

https://blog.csdn.net/weixin_45329397/article/details/121308688

https://blog.csdn.net/a308601801/article/details/89667446

1.什么是复杂度

在设计满足问题需求的算法的时候,复杂度的估算是非常重要的。我们不可能把每一个算法去实现一遍去看看是否足够快。所以应当通过估算算法的复杂度来判断所想的算法是否足够高效。

2.时间复杂度

我们经常用到 o (1), o (n), o (logn), o (nlogn) 来表示对应算法的时间复杂度。

时间复杂度的排序是O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n)。

(1)时间复杂度为 O (1),代码只被执行一次。

(2)时间复杂度为 O (n),比如常见的遍历算法。 也就是一个for循环的时间复杂度。

(3)O(n^2)就是嵌套for循环,就是两个for循环,是不是相当于运行了n*n次。比如冒泡和选择排序。

(4)再比如 O (logn),( log 是以 2 为底)。二分搜索就是 O (logn) 的算法,每找一次排除一半的可能。

(5)O (nlogn) 同理,就是 n 乘以 logn,归并排序就是 典型的例子。 

3.空间复杂度

可以类比于时间复杂度

(1)O(1)单个变量所占的空间永远为1

(2)O(n)数组里面有n个值,占用了n个内存单元

(3)O(n^2)可以想象为一个正方形,边长为n,存储了n的二次方个变量

如何判断时间复杂度和空间复杂度相关推荐

  1. 快速判断时间复杂度和空间复杂度

    喜欢就关注我吧,订阅更多算法小知识 原文链接 1.1时间复杂度 O(1) 代码只被执行一次 O(n) for循环里的代码执行了n次 O(1)+O(n)= O(n) 当n足够大 ,1可以忽略不计 O(n ...

  2. Python数据结构与算法笔记(一):时间复杂度与空间复杂度

    学习内容来自清华计算机博士带你学习Python算法+数据结构.目前内容截止到树结构,后续的高级算法以后会补上. 算法概念简述 数据结构:数据存储 时间复杂度 每个电脑配置不一样.同一个程序执行的时间不 ...

  3. 数据结构(02)— 时间复杂度与空间复杂度转换

    1. 时间复杂度转化为空间复杂度 常用的降低时间复杂度的方法有递归.二分法.排序算法.动态规划等,降低空间复杂度的核心思路就是,能用低复杂度的数据结构能解决问题,就千万不要用高复杂度的数据结构. ​ ...

  4. a*算法的时间复杂度_算法基础——时间复杂度amp;空间复杂度

    关注.星标公众号,学点计算机知识. 整理:persistenceBin 今天来跟大家继续分享一下数据结构的基础知识--算法效率的度量:时间复杂度和空间复杂度.首先来跟大家分享一下在电影<复仇者联 ...

  5. 时间复杂度和空间复杂度3 - 数据结构和算法05

    时间复杂度和空间复杂度3 让编程改变世界 Change the world by program 函数调用的时间复杂度分析 如果我们把问题再实际化一点,大家是否能自己正确的分析出来呢? 我们来看下边这 ...

  6. java 空间复杂度_时间复杂度和空间复杂度

    原文首发于微信公众号:躬行之(jzman-blog) 时间复杂度和空间复杂度可以帮助我们根据具体的平台选择合适的算法,要学会以空间换时间或以时间换空间的设计思想,如在单片机等一般是内存空间比较紧张,在 ...

  7. 时间复杂度和空间复杂度的故事

    前言一 很多搞 iOS 开发的同学都没有学过算法,有一些甚至没有学过数据结构.在很多人的观念中,算法和数据结构只是在面试的时候有用. 这些人的想法对吗?在我看来,也对,也不对. 对于 iOS 开发来说 ...

  8. 我们常说的算法时间复杂度和空间复杂度到底是什么?

    前言 针对某一类问题的解决,我们可能需要借助算法来实现,实现的手段也可能是各式各样的.虽然最终都解决了问题,但是各个解决手段,也就是算法还是存在优劣之分的. 既然存在比较,那肯定就有一个标准供来参考, ...

  9. 算法的时间复杂度与空间复杂度介绍

    本文主要介绍算法的时间复杂度和空间复杂度的相关知识. 1 概述 算法(Algorithm)是指用来操作数据.解决程序问题的方法. 对于同一个问题,使用不同的算法,也许最终得到的结果是相同的,但在执行该 ...

  10. 算法的时间复杂度和空间复杂度总结

    文章目录 前言 算法的时间复杂度和空间复杂度 1.定义 2.计算方法 3.示例 总结 一.什么是时间复杂度? 算法时间复杂度定义: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进 ...

最新文章

  1. OC中的数组,常使用的函数,怎样将字符串写到文件中,将数组写到文件中
  2. AdaBoost人脸检测原理
  3. 【Python】Python视频制作工具Manim入门,基础形状详细介绍
  4. ITK:均值滤波的图像
  5. 递归下降分析程序的设计与实现_递归就是这么简单
  6. Linux中的文件被异常删除的排查思路
  7. garageband 淡出_为什么史蒂夫·乔布斯(Steve Jobs)的GarageBand展示了有史以来最好的现场产品演示...
  8. Android Studio中快捷键实现try catch等功能包含代码块
  9. 为什么要关闭数据库连接,可以不关闭吗?
  10. android计时器代码百度网盘下载,计时器flash_求几个简单Flash计时器,可以自己设定时间的,百度云...
  11. python search group_python笔记52-re正则匹配search(group groups groupdict)
  12. 【转】无人机故障数据集ALFA: A Dataset for UAV Fault and Anomaly Detection
  13. win7系统怎么查看电脑配置,win7电脑系统配置查看
  14. IE8中怎样使用脚本隐藏弹出窗口的地址栏
  15. php后台会员卡管理,实用PHP会员权限控制实现原理分析
  16. HC05蓝牙模块(主从一体)简单使用
  17. 路由器重温——RIP路由
  18. 美国有毒有害物质TSCA测试费用多少
  19. 智慧园区地图导航解决方案,如何实现园区内地图导航?
  20. 衢州计算机网络技术,衢州广播电视大学计算机网络技术专业_浙江报名_网络教育计算机网络技术专业教学计划_中国教育在线...

热门文章

  1. 2019.10.29
  2. virtual memory exhausted: Cannot allocate memory
  3. flyaway mysql_golang通用连接池,支持GRPC,RPC,TCP
  4. linux怎么进入etc目录,Linux 系统的/etc目录
  5. win7浏览器主页修改不过来_Win7 IE无法修改默认主页怎么办?解决IE浏览器主页无法修改主页...
  6. Xcode 学习OpenGL 报错:stbi_set_flip_vertically_on_load
  7. Boost:宏BOOST_LOG_TRIVIAL的测试
  8. less 或 scss 覆盖UI组件样式并集选择器使用
  9. java释放资源_JAVA 手动释放资源问题
  10. 竹间智能以AI能力打通医疗链路全流程,让说明书变成“虚拟健康顾问”