常见算法的时间复杂度
- 常数阶O(1):无论数据规模有多大,都可以在一次计算后找到目标。
- 对数阶O(log n)或O(log 2n):每找一次都排除一半的可能。
- 线性阶O(n):循环时数据量增大几倍耗时也增大几倍。
- 线性对数阶O(n log N):将时间复杂度为O(log n)的代码循环N遍。
- 平方阶O(n^2):对数据进行排序需要扫描n*n次。
- 立方阶O(n^3):同上n*n*n。
- K次方阶O(n^k):同上
- 指数阶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)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…
关于时间复杂度,有一个公式:T (n) = Ο(f (n)). 为了便于比较同一问题的不同算法,通常从算法中抽取一种或者多种有代表性的基本操作,再以这些基本操作重复执行的次数与问题规模的关系T(n) ...
- 常见算法及其时间复杂度总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.O(1) 二.O(logn) 三.O(n) 四.O(nlogn) 五.O(n^2) 六.O(n^3) 七.O(2^ ...
- 常见问题与常见算法的时间复杂度
0. 旅行商问题 旅行商问题,比如某地有 nn(2≤n≤102\leq n\leq 10)个城市,推销员想从一个城市出发,访问所有大城市之后回到起始位置.. 假定,此地恰有最多的 10 个城市,出发城 ...
- 【数据结构】算法的时间复杂度和空间复杂度解析
目录 1. 算法的效率 2 时间复杂度 2.1 时间复杂度的概念 2.2 大O渐进表示法 2.3 常见算法的时间复杂度分析 3. 空间复杂度 3.1 常见空间复杂度分析 1. 算法的效率 我们在写一个 ...
- 【数据结构与算法 10】算法的时间复杂度和空间复杂度
最近在研究数据结构与算法,在B站中找到了小甲鱼的<数据结构与算法课程>,挺有意思的! 尚硅谷Java数据结构与java算法,韩顺平数据结构与算法 对于一个算法来说,分析有两步,第一是从数学 ...
- 时间复杂度解析 根据算法换算时间复杂度 常见时间复杂度及其之间的关系
一.引入 先看一道题,如果 a+b+c=1000,且 a2+b2=c^2(a,b,c 为自然数),如何求出所有a.b.c可能的组合? 二.两种解答方式 算法是独立存在的一种解决问题的方法和思想. 第一 ...
- 常见的几种排序算法的时间复杂度
一. 排序算法的介绍 概述:排序也称排序算法,排序是将一组数据,依指定的顺序进行排列的过程. 排序的分类 (1) 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序. (2) 外部排序:数据 ...
- a*算法的时间复杂度_从经典算法题看时间复杂度
本文首发公众号:架构精进,排版比较清晰. 经常有同学在 LeetCode 的题解中问解法的复杂度是多少.作为一个懒人,我一直在「逃避」这个问题,毕竟这东西听起来就这么「复杂」. 但本着对题解认真负责 ...
- 【转】算法中时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)
2019独角兽企业重金招聘Python工程师标准>>> 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度.这里进行归纳 ...
最新文章
- 安装计算机过程中的注意事项,西门子step7安装过程中的注意事项
- 新加坡国立大学李千骁:动力学系统与监督学习的关系探索
- python 在windows 中文显示
- oracle对象之存储函数
- 研旭电子dsp配套程序_为什么自动调音DSP还火不了?
- 童年各大名场面~ | 今日最佳
- 2018年不能错过的 14 个 Java 库
- Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML
- 人类如何感受到四维空间?
- 2021年数据科学家面试:4个基本SQL窗口函数介绍以及示例
- 【设计模式】第八章 适配器模式
- java基础----变量与常量+作用域
- JavaSE----变量、String、运算符、流程控制
- 互联网思维借鉴的两个核心
- 十大最受欢迎蓝牙耳机品牌推荐,学生党打工人平价蓝牙耳机
- 10款常用的Linux音乐播放器,10款常用的Linux音乐播放器
- java开发工具排名_排名前16的Java工具类
- 低效程序员的九个坏习惯
- co-wechat 微信公众平台消息接口服务中间件
- csp 4-2 卖菜 (300 分)