时间复杂度O(1) O(n)表示什么

在刷面试题中的算法题经常出现时间复杂度O(n),空间复杂度O(1)很多时候不知道是什么意思

空间复杂度与时间复杂度是数据结构的复杂度,在现在储存设备越来越便宜的时代,时间复杂度是决定程序运行速度的重要因素
算法时间复杂度是衡量计算性能的指标,反映了程序执行时间随着输入规模的增长而增长的量级,很大程度的反映出算法性能的好坏,这个量级用大写的O加()表示

从好到坏常用算法复杂度排序如下

O(1):常数级

最低复杂程度,使用时间或使用空间与输入数据大小没有关系,无论输入数据多大,使用时间或使用空间不变
哈希算法就是典型的常熟级算法

O(log n):对数级

使用时间或空间随着输入数据增大,复杂度增大为log n倍,log n倍是n为2的几次方的上标值
二分查找就是对数级算法

O(n):线性级

输入数据增大几倍,时间或空间增大几倍
大部分遍历就是线性级算法

O(nlog n):线性对数级

使用时间或空间随着输入数据增大,复杂度增大为nlog n倍,nlog n倍是n为2的几次方的上标值乘以n
二分查找就是对数级算法

O(n²):平方级

输入数据增大几倍,时间或空间增大几的平方倍
冒泡排序就是平方级算法,不过复杂度是从O(n)->O(n²),冒泡排序在数据错位数量很小时适用

O(n³):立方级

输入数据增大几倍,时间或空间增大几的立方倍

O(2ⁿ):指数级

输入数据增大几倍,时间或空间增大2的几的次方倍

如有错误请各位大牛指出,感激不尽

时间复杂度O(1) O(n)表示什么相关推荐

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

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

  2. 【算法基础】时间复杂度:大O阶方法

    前言: 数据结构与算法中,数据结构就像一个厨房(有食材,有餐具,各种炊具),而算法就像厨师脑海中的菜谱,只有好的食材(数据),整洁有序的厨房(数据组织),简洁明了的菜谱(算法),厨师才能做出美味(程序 ...

  3. P3952 NOIP2017 时间复杂度

    写了两三个小时,麻烦倒是不麻烦,要考虑清楚,想全了 只过了样例提交是不是傻,要自己造数据 数据不大可以用STL 建议自己刚一下,不看代码 #include <iostream> #incl ...

  4. 20140725 快速排序时间复杂度 sTL入门

    1.快速排序的时间复杂度(平均时间复杂度为) 数组本身就有序时,效果很差为O(n^2) 2.STl入门 (1) C++内联函数(inline)和C中宏(#define)区别 内联函数有类型检查,宏定义 ...

  5. C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)

    排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序:   直接插入排序    希尔排序 (插入)  冒泡排序     快速排序  (交换) 直接选择排序  ...

  6. 拜托,面试别再问我时间复杂度了!!!

    最烦面试官问,"为什么XX算法的时间复杂度是OO",今后,不再惧怕这类问题. 快速排序分为这么几步: 第一步,先做一次partition: partition使用第一个元素t=ar ...

  7. Java数组合并,完成排序,从时间复杂度,和空间复杂度考虑

    2019独角兽企业重金招聘Python工程师标准>>> 提供方法,直接调用,支持任意个数组的合并成一个数组,并且完成排序,每个数组元素个数不定.需要提供两个方法,分别做到时间复杂度最 ...

  8. 实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的 栈

    一,问题描述 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素.同时,栈的基本操作:入栈(Push).出栈(Pop),也是在O(1)时间内完成的. 二,问 ...

  9. 任务的插入时间复杂度优化到 O(1),Timing Wheel时间轮是怎么做到的?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在kafka中,有许多请求并不是立即返回,而且处理完一些异 ...

  10. 这道算法题太简单?你忽略了时间复杂度的要求!

    (给视学算法加星标,修炼编程内功) 来源:五分钟学算法 这道题目很有意思! 忽略时间复杂度的要求的话,so easy !加上了时间复杂度的要求,so hard! 而很多小伙伴一开始没有注意时间复杂度的 ...

最新文章

  1. Scrum敏捷开发工具分享
  2. 牛顿第三定律不再起作用:芝加哥大学找到了一种新系统,作用力不等于反作用力...
  3. [HAOI2009]毛毛虫
  4. 单链表删除所有值为x的元素_C/C++编程笔记:如何使用C++实现单链表?单链表的基本定义...
  5. java服务器端编程
  6. axios传数组到后台_我是如何让公司后台管理系统焕然一新的
  7. 代数学笔记2: 域扩张(二)
  8. 不是赚钱太难,妄想天上掉馅饼,才是导致贫穷的根源
  9. Eclipse 使用
  10. nginx源码包编译安装
  11. 如何在 Mac 上忘记 Wi-Fi 网络?
  12. 防止页面高度不足,引起的底部上浮问题
  13. 固态硬盘用软件测试掉速严重,SSD固态硬盘掉速怎么办?手动执行TRIM指令缓解固态硬盘掉速方法...
  14. 非线性可视化(2)非线性相图
  15. 中国银行C语言笔试题,中国银行软件中心2016校园招聘笔试题经验
  16. B站压片 码率标准 和 码率变化 记录
  17. TiDB Data Migration (DM)介绍
  18. android服务实现播放器,Android实现简单音乐播放器(MediaPlayer)
  19. 强大的多线程和倒计时程序
  20. Qt下绘制PPI扫描的雷达图

热门文章

  1. 唐骏:从小老板到亿万富翁
  2. 解决问题的方法和途径-问题分析
  3. 1.orientDB 了解
  4. OrientDB简介
  5. 用Python3开发爆款游戏——捕鱼达人
  6. 图形API学习工程(4):梳理:以Vulkan为中心梳理当前初始化阶段的代码
  7. CAS:1427004-19-0,DBCO-PEG4-NHS ester是含有NHS酯的点击化学PEG试剂
  8. IDEA搭建SSH框架
  9. 2022/12/18 3496. 特殊年份
  10. Post请求基本步骤