大O符号基础

大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符号正好相反,表示总大于。即:

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


References:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • matlab命令 声明:本文转自:https://www.douban.com/note/136332003/ 侵...
    我就是个初学者阅读 14,581评论 0 44
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,662评论 0 13
  • js原声代码实现ajkx Ajax的核心是XMLHttpRequest对象 1、创建XMLHttpRequest对...
    老头子_d0ec阅读 255评论 0 0
  • 很多人都喜欢用时间的长短来衡量自己做的某件事情。然而,你做的事情并没有时时刻刻伴着你,你所认为的那些时间并作不得数...
    陈南塘阅读 780评论 1 3
  • 道德经第廿十四章 企者不立,跨者不行。自视者不彰,自见者不明,自伐者无功,自矜者不长。其在道也,曰:馀食赘行。物或...
    蓝色滑行阅读 618评论 0 0

友情链接更多精彩内容