时间复杂度O(1) O(n)表示什么
时间复杂度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)表示什么相关推荐
- 数据结构(02)— 时间复杂度与空间复杂度转换
1. 时间复杂度转化为空间复杂度 常用的降低时间复杂度的方法有递归.二分法.排序算法.动态规划等,降低空间复杂度的核心思路就是,能用低复杂度的数据结构能解决问题,就千万不要用高复杂度的数据结构. ...
- 【算法基础】时间复杂度:大O阶方法
前言: 数据结构与算法中,数据结构就像一个厨房(有食材,有餐具,各种炊具),而算法就像厨师脑海中的菜谱,只有好的食材(数据),整洁有序的厨房(数据组织),简洁明了的菜谱(算法),厨师才能做出美味(程序 ...
- P3952 NOIP2017 时间复杂度
写了两三个小时,麻烦倒是不麻烦,要考虑清楚,想全了 只过了样例提交是不是傻,要自己造数据 数据不大可以用STL 建议自己刚一下,不看代码 #include <iostream> #incl ...
- 20140725 快速排序时间复杂度 sTL入门
1.快速排序的时间复杂度(平均时间复杂度为) 数组本身就有序时,效果很差为O(n^2) 2.STl入门 (1) C++内联函数(inline)和C中宏(#define)区别 内联函数有类型检查,宏定义 ...
- C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)
排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序: 直接插入排序 希尔排序 (插入) 冒泡排序 快速排序 (交换) 直接选择排序 ...
- 拜托,面试别再问我时间复杂度了!!!
最烦面试官问,"为什么XX算法的时间复杂度是OO",今后,不再惧怕这类问题. 快速排序分为这么几步: 第一步,先做一次partition: partition使用第一个元素t=ar ...
- Java数组合并,完成排序,从时间复杂度,和空间复杂度考虑
2019独角兽企业重金招聘Python工程师标准>>> 提供方法,直接调用,支持任意个数组的合并成一个数组,并且完成排序,每个数组元素个数不定.需要提供两个方法,分别做到时间复杂度最 ...
- 实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的 栈
一,问题描述 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素.同时,栈的基本操作:入栈(Push).出栈(Pop),也是在O(1)时间内完成的. 二,问 ...
- 任务的插入时间复杂度优化到 O(1),Timing Wheel时间轮是怎么做到的?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在kafka中,有许多请求并不是立即返回,而且处理完一些异 ...
- 这道算法题太简单?你忽略了时间复杂度的要求!
(给视学算法加星标,修炼编程内功) 来源:五分钟学算法 这道题目很有意思! 忽略时间复杂度的要求的话,so easy !加上了时间复杂度的要求,so hard! 而很多小伙伴一开始没有注意时间复杂度的 ...
最新文章
- Scrum敏捷开发工具分享
- 牛顿第三定律不再起作用:芝加哥大学找到了一种新系统,作用力不等于反作用力...
- [HAOI2009]毛毛虫
- 单链表删除所有值为x的元素_C/C++编程笔记:如何使用C++实现单链表?单链表的基本定义...
- java服务器端编程
- axios传数组到后台_我是如何让公司后台管理系统焕然一新的
- 代数学笔记2: 域扩张(二)
- 不是赚钱太难,妄想天上掉馅饼,才是导致贫穷的根源
- Eclipse 使用
- nginx源码包编译安装
- 如何在 Mac 上忘记 Wi-Fi 网络?
- 防止页面高度不足,引起的底部上浮问题
- 固态硬盘用软件测试掉速严重,SSD固态硬盘掉速怎么办?手动执行TRIM指令缓解固态硬盘掉速方法...
- 非线性可视化(2)非线性相图
- 中国银行C语言笔试题,中国银行软件中心2016校园招聘笔试题经验
- B站压片 码率标准 和 码率变化 记录
- TiDB Data Migration (DM)介绍
- android服务实现播放器,Android实现简单音乐播放器(MediaPlayer)
- 强大的多线程和倒计时程序
- Qt下绘制PPI扫描的雷达图