伪代码与时间复杂度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了伪代码与时间复杂度相关的知识,希望对你有一定的参考价值。
(1)O符号,渐近紧确上界,f(n) = O(g(n)),表示存在正常量c和n0使得对所有n ≥ n0,有 0 ≤ f(n) ≤ cg(n) ,即小于等于,f(n)不高于g(n)的阶;
(2)Ω符号,渐近紧确下界,f(n) = Ω(g(n)),表示存在正常量c和n0使得对所有n ≥ n0,有 0 ≤ cg(n) ≤ f(n) ,即大于等于,f(n)不低于g(n)的阶;
(3)o符号,非渐近紧确上界,f(n) = o(g(n)),表示存在正常量c和n0使得对所有n ≥ n0,有 0 ≤ f(n) < cg(n) ,即小于,f(n)低于g(n)的阶;
(4)ω符号,非渐近紧确下界,f(n) = ω(g(n)),表示存在正常量c和n0使得对所有n ≥ n0,有 0 ≤ cg(n) < f(n) ,即大于,f(n)高于g(n)的阶;
(5)Θ符号,渐近紧确界,f(n) = Θ(g(n)),表示存在正常量c1,c2,n0使得对所有n ≥ n0,有 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n),f(n)与g(n)同阶;
举例说明渐近符号的相关用法:
1、插入排序的时间复杂度是O(n²),代表插入排度的时间复杂度是一个小于等于n²的集合(1,n,n²等),时间复杂度即可以是1也可以是n²;
2、如果时间复杂度是Θ(2n²),代表时间复杂度可以是n²,2n²,3n²等;
3、如果时间复杂度是Ω(n²),代表时间复杂度可以是n²,n^3等;
4、如果时间复杂度是o(n²),代表时间复杂度可以是1,n,2n等但不是能n²;
5、如果时间复杂度是ω(n²),代表时间复杂度可以是n^3,n^4等但不是n²;
标准记号与常用函数:
1、下取整(floor)与上取整(ceiling);
2、取模运算: a mod b的值即a/b的余数;
3、整除:a | b;
4、对数:
a可以表示成a = kb + r,则r = a mod b
假设d是a,b的一个公约数,则有
d|a, d|b,而r = a - kb,因此d|r
因此d是(b,a mod b)的公约数
假设d 是(b,a mod b)的公约数,则
d | b , d |r ,但是a = kb +r
因此d也是(a,b)的公约数
以上是关于伪代码与时间复杂度的主要内容,如果未能解决你的问题,请参考以下文章