1. 常数阶O(1):无论数据规模有多大,都可以在一次计算后找到目标。
  2. 对数阶O(log n)或O(log 2n):每找一次都排除一半的可能。
  3. 线性阶O(n):循环时数据量增大几倍耗时也增大几倍。
  4. 线性对数阶O(n log N):将时间复杂度为O(log n)的代码循环N遍。
  5. 平方阶O(n^2):对数据进行排序需要扫描n*n次。
  6. 立方阶O(n^3):同上n*n*n。
  7. K次方阶O(n^k):同上
  8. 指数阶O(2^n):同上

类型

意义

举例

O(1)

最低复杂度,耗时/耗空间与数据的大小无关,无论输入的数据增大多少倍耗时还是空间都不变。

哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到(不考虑冲突)

O(log n)

当数据增大n倍时,耗时增大logn倍(log是以2为底的),也就是n/long。

二分查找算法就是O(log n)算法,每找一次都排除一半的可能。如256个数据找8次就能找到目标

O(n)

数据量增大几倍,耗时也增大几倍

遍历算法普通的for循环

O(n log N)

将时间复杂度为O(log n)的代码循环N遍,比如数据增大256倍时,耗时增大256*8倍。

归并排序、快速排序、堆排序

O(n^2)

对n个数的排序,需要循环n*n次

冒泡排序、插入排序、选择排序

O(n^3)

同上,相当于三层n循环。

常规的矩阵乘算法

O(n^k)

同上,相当于k层n循环

O(2^n)

常见的时间复杂度,由大到小依次为:1 < log2N < n < n*Log2N < n^2 < n^3 < 2^n < 3^n < n!

常见算法的时间复杂度相关推荐

  1. 常见算法的时间复杂度 Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…

    关于时间复杂度,有一个公式:T (n) = Ο(f (n)). 为了便于比较同一问题的不同算法,通常从算法中抽取一种或者多种有代表性的基本操作,再以这些基本操作重复执行的次数与问题规模的关系T(n) ...

  2. 常见算法及其时间复杂度总结

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.O(1) 二.O(logn) 三.O(n) 四.O(nlogn) 五.O(n^2) 六.O(n^3) 七.O(2^ ...

  3. 常见问题与常见算法的时间复杂度

    0. 旅行商问题 旅行商问题,比如某地有 nn(2≤n≤102\leq n\leq 10)个城市,推销员想从一个城市出发,访问所有大城市之后回到起始位置.. 假定,此地恰有最多的 10 个城市,出发城 ...

  4. 【数据结构】算法的时间复杂度和空间复杂度解析

    目录 1. 算法的效率 2 时间复杂度 2.1 时间复杂度的概念 2.2 大O渐进表示法 2.3 常见算法的时间复杂度分析 3. 空间复杂度 3.1 常见空间复杂度分析 1. 算法的效率 我们在写一个 ...

  5. 【数据结构与算法 10】算法的时间复杂度和空间复杂度

    最近在研究数据结构与算法,在B站中找到了小甲鱼的<数据结构与算法课程>,挺有意思的! 尚硅谷Java数据结构与java算法,韩顺平数据结构与算法 对于一个算法来说,分析有两步,第一是从数学 ...

  6. 时间复杂度解析 根据算法换算时间复杂度 常见时间复杂度及其之间的关系

    一.引入 先看一道题,如果 a+b+c=1000,且 a2+b2=c^2(a,b,c 为自然数),如何求出所有a.b.c可能的组合? 二.两种解答方式 算法是独立存在的一种解决问题的方法和思想. 第一 ...

  7. 常见的几种排序算法的时间复杂度

    一. 排序算法的介绍 概述:排序也称排序算法,排序是将一组数据,依指定的顺序进行排列的过程. 排序的分类 (1) 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序. (2) 外部排序:数据 ...

  8. a*算法的时间复杂度_从经典算法题看时间复杂度

    本文首发公众号:架构精进​,排版比较清晰. 经常有同学在 LeetCode 的题解中问解法的复杂度是多少.作为一个懒人,我一直在「逃避」这个问题,毕竟这东西听起来就这么「复杂」. 但本着对题解认真负责 ...

  9. 【转】算法中时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)

    2019独角兽企业重金招聘Python工程师标准>>> 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度.这里进行归纳 ...

最新文章

  1. 安装计算机过程中的注意事项,西门子step7安装过程中的注意事项
  2. 新加坡国立大学李千骁:动力学系统与监督学习的关系探索
  3. python 在windows 中文显示
  4. oracle对象之存储函数
  5. 研旭电子dsp配套程序_为什么自动调音DSP还火不了?
  6. 童年各大名场面~ | 今日最佳
  7. 2018年不能错过的 14 个 Java 库
  8. Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML
  9. 人类如何感受到四维空间?
  10. 2021年数据科学家面试:4个基本SQL窗口函数介绍以及示例
  11. 【设计模式】第八章 适配器模式
  12. java基础----变量与常量+作用域
  13. JavaSE----变量、String、运算符、流程控制
  14. 互联网思维借鉴的两个核心
  15. 十大最受欢迎蓝牙耳机品牌推荐,学生党打工人平价蓝牙耳机
  16. 10款常用的Linux音乐播放器,10款常用的Linux音乐播放器
  17. java开发工具排名_排名前16的Java工具类
  18. 低效程序员的九个坏习惯
  19. co-wechat 微信公众平台消息接口服务中间件
  20. csp 4-2 卖菜 (300 分)

热门文章

  1. ChatDoctor本地部署应用的实战方案
  2. 【博学谷学习记录】超强总结,用心分享 | ZooKeeper集群
  3. java生成大文件的示例
  4. vmware虚拟机和windows PC机构建无线局域网
  5. nmon命令linux安装,性能测试Linux工具nmon安装及使用方法
  6. 约束优化:低维线性时间线性规划算法(Seidel算法)、低维线性时间严格凸二次规划算法
  7. Windows2012R2域控服务器完整搭建
  8. Javaswing界面设计拖动
  9. 将本地项目上传到gitlab
  10. 硬盘损坏如何恢oracle,硬盘坏道造成Oracle数据库无法启动恢复