对于所有算法,我们都要讨论其运行时间。一般而言,应该选择效率最高的算法,以最大程度地减少运行时间或占用空间。

大O表示法 是一种特殊的表示法,指出了算法的速度有多快。大O表示法 并不能表示具体算法任务运行的时间,这也没有意义,因为任务量总是在变。我们需要知道运行时间如何随任务量增长而增长,这正是大O法的用武之地。大O法表示指出了算法有多快。例如,假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间表示为O(n)。并没有时间单位s,这是因为大O法指的并非以秒为单位的速度。大O表示法让你能够比较操作次数,它指出了算法运行时间的增速。如果换用二分法检查长为n的列表,二分查找需要执行log n次操作。使用大O表示法这个的运行时间则为O(log n)

大O表示法 指出了最糟糕情况下的运行时间。假设你在使用简单查找电话簿中的人,查找Adit时,一次就找到了,这是最佳的情形,但大O表示法说的是最糟糕的情形。因此,你可以说,在最糟糕的的情况下,必须查看电话簿中的每一个条目,对应的运行时间为O(n)。这是一个保证——你知道简单查找的运行时间不可能超过O(n)另外,除了最糟糕情况下的运行时间,还应考虑平均情况的运行时间,这也很重要。

下面按从快到慢的顺序列出经常会遇到的5种大O运行时间:

  • O(l

【算法】时间复杂度/运行时间——大O表示法相关推荐

  1. 算法的时间复杂度(大O表示法)

    首先我们先来看个例子, 我想找个1-100的数字`,你的目标是以最少的次数猜到这个数字.你每次猜测后,我会说小了.大了或对了.下面我们来看下两种简单的方法(方法有很多种),再来引入算法的运行时间!`` ...

  2. 算法时间复杂度的渐近表示法

    基础知识点 一个算法的时间复杂度,指算法运行的时间. 假设数据输入规模是n,算法的复杂度可以表示为f(n)的函数 接受上界不接受下界 大O记号(不唯一)(一般找最邻近它的那个) 假设f(n)和g(n) ...

  3. a*算法的时间复杂度_算法的时间复杂度:大O表示法

    本文讨论一下算法的时间复杂度问题,用到的素材取自<算法图解>一书,强烈推荐, 如有不妥,请联系我! 二分查找 随便想一个1-100的数字. 你的目标是以最少的次数猜到这个数字.你每次猜测后 ...

  4. 算法与数据结构(part1)--算法简介及大O表示法

    学习笔记,仅供参考 文章目录 算法与数据结构--基于python 数据结构和算法简介 算法引入 例题A 算法的概念 例题A的优化 算法效率的衡量 时间复杂度与大O记法 例题A的时间复杂度 如何理解大O ...

  5. 算法时间复杂度分析——大O、大Ω、大θ、小o,小ω

    最近开始转战传统算法分析的研究工作了,重新拾起以前学过的一些内容. 目录 一.概述 二.对常见的Ο和Ω进行分析 2.1 大O表示法 2.2 大Ω表示法 三.P问题,NP问题,NP-hard问题,NPC ...

  6. 一文彻底掌握时间复杂度和大O表示法

    预备知识: 计算机基础知识 高中数学知识 时间复杂度用来干嘛 时间复杂度是衡量算法好坏的一个重要指标,另一个重要指标是空间复杂度. 算法 我们先来了解一下算法,对于一个计算机程序,其算法就是其内部执行 ...

  7. 时间复杂度分析-大O表示法

    开篇词 | 从今天起,跨过"数据结构与算法"这道坎 你好,我是王争,毕业于西安交通大学计算机专业.现在回想起来,本科毕业的时候,我的编程水平其实是很差的.直到读研究生的时候,一个师 ...

  8. 算法概念:大O表示法/小o表示法/Ω/Θ

    如果算法A需要的时间与f(n)成正比,则算法A称为f(n)阶,表示为O(f(n)).函数f(n)称为算法的增率函数(growth-rate function).该表示法使用大写字母O来表示(order ...

  9. 算法图解1-二分法与大O表示法

    目录 一,二分法与大O表示法 1.1写在前面 1.2需要具备的知识 1.3二分法 1.4更佳的查找方式 1.4.1代码设计 1.4.2运行时间 1.5大O表示法 1.5.1算法的运行时间以不同的速度增 ...

最新文章

  1. (C++)用指针实现两数交换函数swap()的两种方法
  2. 透过三翼鸟,看品牌背后的“有效创新”
  3. NYOJ 士兵杀敌(四) 树状数组
  4. 前端基础21:正则基础
  5. LeetCode 239. Sliding Window Maximum
  6. halcon/c++接口基础 之内存管理
  7. Facebook 开源:PyTorchVideo!
  8. python3没有decode_我如何在Python3中使用.decode('string-escape')?
  9. c/c++教程 - 1.5 运算符
  10. C语言实现sin函数的程序设计
  11. 堆栈callstack打印
  12. 树状图 - Dendrogram
  13. excel多工作表汇总如何完成?
  14. C#WinForm 分屏教程合集
  15. 微信小程序小功能分享一( canves制图之后台base64图片转为微信临时文件)
  16. 手机上有哪些可以记录生日倒计时天数的软件?
  17. Apache虚拟主机相关配置
  18. Glyphicons V3 字体图标查询
  19. 小白初学AFL(American Fuzzy Lop)
  20. BIM——建筑信息模型 工程造价培训班

热门文章

  1. [29期] 一个乞丐的故事,什么叫职业人?
  2. 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第六大题解答
  3. linux mint必装软件,Linux mint 系统实用软件推荐和安装
  4. Google创新方法「设计冲刺」
  5. suse linux 11镜像下载,SUSE Linux Enterprise 11 SP3 发布
  6. 明年打算考会计证 -柯桥有没有推荐的地方-泓畅
  7. Android常用技巧总结
  8. 这些旅行必备APP,你知道几个?
  9. 团队项目开发流程总结
  10. 【随笔】IT圈的头衔泡沫