大O表示法

大O表示法的定义

f(n) is O(g(n)) if there exist positive numbers c and N such that f (n) ≤cg(n) for all n ≥ N.

即如果存在常数 c c c N N N使得对所有的 n > = N n>=N n>=N时,都有 f ( n ) < = c g ( n ) f(n)<=cg(n) f(n)<=cg(n),则 f ( n ) f(n) f(n)等同于 O ( g ( n ) ) O(g(n)) O(g(n))
可以大概的理解为 g ( n ) g(n) g(n)为限定条件下,算法的最坏情况或者f的增长不会超过 g g g。举例来说:

f ( n ) = 2 n 2 + 3 n + 1 f(n)=2n^2+3n+1 f(n)=2n2+3n+1
根据定义首先需要确定 g ( n ) g(n) g(n), c g ( n ) cg(n) cg(n)要能够表示 f ( n ) f(n) f(n)的增长上限,即 f ( n ) ≤ c g ( n ) f (n) ≤cg(n) f(n)cg(n)。若 g ( n ) = n g(n)=n g(n)=n, g ( n ) g(n) g(n)为线性函数不论选取多大的常数 c c c都会与二次函数 f ( n ) f(n) f(n)有交点或小于 f ( n ) f(n) f(n)。故 g ( n ) g(n) g(n)应当选取 n 2 n^2 n2,但实际上,选取 n 3 , n 4 n^3 , n^4 n3,n4同样符合定义,但是为了便于统一故选取最小的 g ( n ) g(n) g(n) n 2 n^2 n2。另外根据定义,需要找到使 f ( n ) < = c g ( n ) f(n)<=cg(n) f(n)<=cg(n)这一不等式成立的c的取值,即 f ( n ) = 2 n 2 + 3 n + 1 < = c n 2 f(n)=2n^2+3n+1<=cn^2 f(n)=2n2+3n+1<=cn2。实际上根据N选择的不同c的结果也将不同。
在这里插入图片描述

c g ( n ) cg(n) cg(n) f ( n ) f(n) f(n)的对比
在这里插入图片描述

确定了c和N的存在后,即可将 f ( n ) = 2 n 2 + 3 n + 1 f(n)=2n^2+3n+1 f(n)=2n2+3n+1根据大O表示法等价为 O ( n 2 ) O(n^2) O(n2).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值