一. 什么是算法:是指用来操作数据,解决程序问题的一组方法。对于同一个问题,使用不同的算法,结果是一样的,但是过程中所消耗的资源和时间却会有很大的区别。

二. 从哪些角度衡量消耗资源的多少:时间维度,空间维度。

时间维度:指当前算法所消耗的时间——>时间复杂度

空间维度:指当前算法需要占用的内存空间——>空间复杂度

# 使用什么样的算法来实现,需要在时间,空间复杂度之间进行取舍,权衡。

三. 时间复杂度

公式:T(n) = O(f(n)) ——>大O表示法

通过举例说明:

解释:图片中第一行的执行次数,只有一次;

第三行的执行次数,有n次;

第四行的执行次数,有n次;

综合以上,计算出来的总的执行次数为:f(n)=1+n+n=2n+1;

如果当n为无穷大的时候,1可忽略不计,即f(n)=2n,此时f(n)随着n的数值变化而变化,而

时间复杂度T(n)=O(f(n)),即可简化表达为T(n)=O(n)。

四. 常见的时间复杂度量级有:

  • 常数阶O(1)
  • 对数阶O(logN)
  • 线性阶O(n)
  • 线性对数阶O(nlogN)
  • 平方阶O(n²)
  • 立方阶O(n³)
  • K次方阶O(n^k)
  • 指数阶(2^n)

常数阶O(1):无论执行多少次,没有循环就是常数阶。

线性阶O(n):上面例子。

对数阶O(logN):

int i = 1;
while(i<n)
{i = i * 2;
}

该例子中,i从初始值开始,每次乘以2,不断的接近n,假设x次乘以2之后,i的值大于等于了n,那么是否可以得出,2的n次方等于x,那么x = log2^n,则简化后,时间复杂度为O(logn)。

线性对数阶O(nlogN):举例如下

for(m=1; m<n; m++)
{i = 1;while(i<n){i = i * 2;}
}

复杂度为对数阶的程序,执行n次,时间复杂度即为线性对数阶。

平方阶O(n²):线性阶复杂度的程序,循环执行n次。

立方阶O(n³):线性阶三层嵌套。

五. 常用的空间复杂度:

O(1)——>如果算法执行所需要的临时空间不随着某个变量n的大小而变化,即此算法空间复杂度为一个常量。

O(n)——>

int[] m = new int[n]
for(i=1; i<=n; ++i)
{j = i;j++;
}

O(n*n)——>以此类推

计算机常识细节整理(一)时间复杂度和空间复杂度相关推荐

  1. 【计算机基础】 经常使用的排序算法的时间复杂度和空间复杂度

    经常使用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 高速排序 O(n2) O(n*log2n) 不稳 ...

  2. 计算机时间复杂度和空间复杂度

    2019独角兽企业重金招聘Python工程师标准>>> 首先了解一下几个概念.一个是时间复杂度,一个是渐近时间复杂度.前者是某个算法的时间耗费,它是该算法所求解问题规模n的函数,而后 ...

  3. 公共基础计算机常识题,公共基础知识计算机常识类试题汇总整理(含答案)

    主要是事业单位考试的试题筛选而来.事业单位公共基础知识 计算机常识 1.操作系统在第几代计算机开始应用(). A.第一代 B.第二代 C.第三代 D.第四代 2.一般按照(),将计算机的发展划分为四代 ...

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

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

  5. 算法复杂度:算法时间复杂度和空间复杂度表示法

    文章地址:http://lzw.me/a/algorithm-complexity.html 算法复杂度分为时间复杂度和空间复杂度. 时间复杂度用于度量算法执行的时间长短:而空间复杂度则是用于度量算法 ...

  6. 常用的排序算法的时间复杂度和空间复杂度

    常用的排序算法的时间复杂度和空间复杂度                                           1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出 ...

  7. 【算法的时间复杂度和空间复杂度】-算法02

    算法的时间复杂度和空间复杂度 一个算法的好坏我们主要从"时间"和"空间" 两个维度来衡量 时间维度:是指执行当前算法所消耗的时间,我们通常用 "时间复 ...

  8. 递归二分查找时间复杂度、空间复杂度和稳定性

    递归 递归条件 自己调用自己 有结束条件 二分查找 二分查找对1~100乱序数字查找 l = list(range(1,101)) def bin_search(data_set,val):low = ...

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

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

最新文章

  1. python3下关于copy和deepcopy中的区别
  2. maven创建的工程eclipse 项目--属性--为什么没有deployment assembly 按钮呢
  3. 汉诺塔 X HDU - 2511
  4. linux mint python3.6,Linux 上如何安装并切换最新版本的 Python 3.6
  5. 【转载】生机勃勃的秋菊freeeim
  6. Echarts 地图绘制
  7. linq判断集合中相同元素个数_使用Linq获取集合的最后N个元素?
  8. 如何用计算机放出音乐,如何录制电脑内部播放的声音及音乐 - 楼月语音聊天录音软件...
  9. Java Web图书管理系统总结(jsp+servlet+jdbc+javabean+dao)
  10. 弱监督学习的介绍及应用
  11. ASP.NET会话(Session) 转载自:寒羽枫(cityhunter172)
  12. 音乐计算机研修心得,音乐学习心得体会五篇
  13. 嵌入式系统 - 任务管理
  14. 想让Button带个图片?安排!LVGL『Image button图片按键控件』介绍
  15. Python-Pyecharts画图(饼图,雷达图,词云)[二]
  16. 如何写好一篇优质的网站内容
  17. Altium Designer 制造输出 各文件后缀的含义
  18. 无敌哥-创新设计思维
  19. [附源码]Python计算机毕业设计SSM基于社区疫情防控管理系统(程序+LW)
  20. C#使用itextsharp生成PDF文件

热门文章

  1. Matlab P代码加密与解密
  2. node.js+vue药品药店进销存管理系统jb526
  3. 决策树的原理及构建(基于ID3算法)
  4. wine常见问题集合
  5. 医药计算机实验报告,医药管理系统实验报告.doc
  6. BmS电池管理系统源码,包括源理图,BOM,源码
  7. IQA (图像质量评价)
  8. 应届生的身份居然这么香!别等毕业后才知道!
  9. 深入理解Android EventBus原理
  10. 2.3 黑群晖驱动:开启nvme缓存、将nvme缓存作为存储盘 教程