大O符号基础

简介: 大O符号(Big O notation), 又称渐进符号,是用于描述函数的渐近行为的数学符号。它是指用另一个(通常更简单的)函数来描述一个函数数量级的渐进上界。

大O符号(Big O notation), 又称渐进符号,是用于描述函数的渐近行为的数学符号。它是指用另一个(通常更简单的)函数来描述一个函数数量级的渐进上界。

  • 由德国数论学家保罗·巴赫曼首次引入,并由德国数论学家艾德蒙·朗道推广。
符号 名称
O(1) 常量时间
O(log n) 对数时间
O[(log n)c] 多对数时间
O(n) 线性时间
O(nlog*n) 线性迭代对数时间
O(nlogn) 线性对数时间
O(n2) 平方
O(nc), Integer(c>1) 多项式时间
O(cn) 指数时间
O(n!) 阶乘时间

在n趋于无穷大时,这些函数从上到下增长越来越快。
即在用于描述时间复杂度时,随着问题规模的增大,从上到下所需要消耗的时间越来越多。


相关概念:
多项式时间(Polynomial time)即指一个问题的计算时间m(n) = O(nk ),k为常量值。
数学家有时把“如多项式时间长的算法”视为快速计算。

超多项式时间 即当计算规模足够大,解题时间将大大超过任何多项式时间的问题。


相关符号:
大Ω符号:大O符号表示函数在增长到一定程度时总小于某函数的常数倍,大Ω符号与大O符号正好相反,表示总大于。即:

img_61cc26a694a59ab732672d3a9fb77a22.png

大Θ符号是大O符号和大Ω符号的结合。即:

img_aeb8eed7ac97134f69c380b1c6d8eb12.png

img_773838740d24205f1d0ae102c8071a67.png

References:

目录
相关文章
|
存储 程序员 C语言
动态存储方式与静态存储方式
在编程中,数据的存储方式对于程序的性能、内存使用以及代码的可维护性都有着至关重要的影响。其中,动态存储方式和静态存储方式是两种常见的数据存储方式。本文将探讨这两种存储方式的区别、应用场景,并附上相应的代码示例。
493 1
|
C语言
【C语言】exit函数详解
【C语言】exit函数详解
2926 0
|
7月前
|
存储 缓存 分布式计算
【赵渝强老师】Spark RDD的缓存机制
Spark RDD通过`persist`或`cache`方法可将计算结果缓存,但并非立即生效,而是在触发action时才缓存到内存中供重用。`cache`方法实际调用了`persist(StorageLevel.MEMORY_ONLY)`。RDD缓存可能因内存不足被删除,建议结合检查点机制保证容错。示例中,读取大文件并多次调用`count`,使用缓存后执行效率显著提升,最后一次计算仅耗时98ms。
155 0
【赵渝强老师】Spark RDD的缓存机制
|
域名解析 缓存 网络协议
找不到DNS地址的解决方案
找不到DNS地址的解决方案
1313 1
|
JavaScript 内存技术
nvm-windows安装和配置
nvm-windows安装和配置
1148 1
|
数据采集 算法 数据库
软件工程可行性分析报告
软件工程实验报告
281 1
|
供应链 物联网 5G
未来交织:新兴技术的融合趋势与创新应用
【4月更文挑战第3天】 在当今这个快速演变的技术时代,新兴技术如区块链、物联网(IoT)、虚拟现实(VR)等正在独立发展的同时,展现出彼此交融和相互促进的趋势。本文将深入探讨这些技术的发展趋势以及它们在不同领域的结合使用场景,旨在揭示一个多元化技术融合的未来蓝图。
|
JavaScript
vue element plus Select 选择器
vue element plus Select 选择器
907 0
|
存储 安全 Devops
这个代码托管平台真的香!比 Github 速度更快!!!
这个代码托管平台真的香!比 Github 速度更快!!!
5611 0
这个代码托管平台真的香!比 Github 速度更快!!!