算法符号简单介绍

Ө 符号

theta 符号

在这我们用Ө(g(n)) 来表示一组函数:Ө(g(n)) = {f(n): 任何大于0的常数 c1, c2, 和 n0 满足 0<=c1g(n)<=f(n)<=c2g(n),对于所有的 n>=n0}.

我们说g(n) 是f(n) 的渐近紧范围 (asymptotically tight bound)。

因为Ө(g(n)) 的定义要求每个符合Ө(g(n)) 要求的f(n) 得是渐近不是负数的 (asymptotically non-negative),也就是说,无论n 有多大,f(n) 都不会是负数。

函数g(n) 本身必须是渐近不是负数 (asymptotically non-negative) 或则集合Ө(g(n)) 是空集。

O 符号 大写

O 大写符号

在这我们用O(g(n)) 来表示一组函数:

O(g(n)) = {f(n): 任何大于0的常数 c 和 n0 满足 0<=f(n)<=cg(n),对于所有的 n>=n0}.

我们说g(n) 是f(n) 的渐近上范围 (asymptotically upper bound)。

注意:f(n)=Ө(g(n)) 说明了f(n)=O(g(n)) ,因为Ө 符号是个比O 符号强的符号;所以,我们可以说Ө(g(n)) ⊆ O(g(n)),Ө(g(n))是O(g(n)) 的子集。

Ω 符号 大写

omega 大写符号

在这我们用Ω(g(n)) 来表示一组函数:

Ω(g(n)) = {f(n): 任何大于0的常数 c 和 n0 满足 0<=cg(n)<=f(n),对于所有的 n>=n0}.

我们说g(n) 是f(n) 的渐近下范围 (asymptotically lower bound)。

这里说个理论,如果对任何两个函数f(n) 和 g(n),仅且仅只有当f(n)=O(g(n)) 和f(n)=Ω(g(n)),我们会有Ө(g(n))。

o 符号 小写

o 小写符号

在这我们用o(g(n)) 来表示一组函数:

o(g(n)) = {f(n): 任何大于0的常数 c,存在大于0的 n0 满足 0<=f(n)<cg(n),对于所有的 n>=n0}.

我们说g(n) 是f(n) 的上范围但不是渐近紧 (upper bound that is not asymptotically tight)。

而且,在o 符号中,当n 越来越接近无穷大,函数f(n) 和g(n) 的关系会变得越来越无关紧要;也就是说,lim x → ∞ (f(n)/g(n)) = 0.

ω 符号 小写

omega 小写符号

在这我们用ω(g(n)) 来表示一组函数:

ω(g(n)) = {f(n): 任何大于0的常数 c,存在大于0的 n0 满足 0<=cg(n)<f(n),对于所有的 n>=n0}.

我们说g(n) 是f(n) 的下范围但不是渐近紧 (lower bound that is not asymptotically tight)。

而且,在o 符号中,当n 越来越接近无穷大,函数f(n) 和g(n) 的关系会变得越来越重要;也就是说,lim x → ∞ (f(n)/g(n)) = ∞.

测试算法时间的程序

下面这段伪代码是以纳秒为单位计算的,可以在实际中相对准确地验证我们的理论时间。

// Java代码,测试程序运行的时间
// 伪代码 
long startTime=System.nanoTime();   // 获取开始的时间 
doSth();  // 算法内容 
long endTime=System.nanoTime(); // 获取结束的时间 
System.out.println("Running time of algorithm: " + (end-start) + "ns");
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不能吃辣的JAVA程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值