主题:大O表示法`~
wbyoulove
[专家分:4830] 发布于 2006-04-20 22:32:00
请问什么是大O表示法? 请高手具体讲解一下`
随便请问那个大侠有JAVA描述的数据结构与算法的资料,谢谢
回复列表 (共2个回复)
沙发
rickone [专家分:15390] 发布于 2006-04-21 16:49:00
我拿来书帮你抄:
定义1-1:称一个函数g(n)是O(f(n)),当且仅当存在常数c>0和n0>=0,对一切n>n0均有|g(n)|<=c|f(n)|成立,也称函数g(n)以f(n)为界或者称g(n)囿于f(n)。记作g(n)=O(f(n))。
定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数。T(n)称为这一算法的“时间复杂性”。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。
我们常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。大O表示只是说有上界,由定义如果f(n)=O(n),那显然成立f(n)=O(n^2),它给你一个上界,但并不是上确界,但人们在表示的时候一般都习惯表示前者。此外,一个问题本身也有它的复杂性,如果某个算法的复杂性到达了这个问题复杂性的下界,那就称这样的算法是最佳算法。
板凳
euc [专家分:4310] 发布于 2006-04-22 16:42:00
哈哈,rick也有《算法基础》啊~我正在看.
我来回复