回 帖 发 新 帖 刷新版面

主题:大O表示法`~

请问什么是大O表示法? 请高手具体讲解一下`

 随便请问那个大侠有JAVA描述的数据结构与算法的资料,谢谢

回复列表 (共2个回复)

沙发

我拿来书帮你抄:
定义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),它给你一个上界,但并不是上确界,但人们在表示的时候一般都习惯表示前者。此外,一个问题本身也有它的复杂性,如果某个算法的复杂性到达了这个问题复杂性的下界,那就称这样的算法是最佳算法。

板凳

哈哈,rick也有《算法基础》啊~我正在看.

我来回复

您尚未登录,请登录后再回复。点此登录或注册