四個所需定義估計算法資源消耗
參考Mark Allen Weiss《數據結構與算法分析c++描述》第三版
1、如果存在正常數c 和n0 使得當N≥n0 時T(N)≤cf(N) ,則記爲T(N)=O(f(N)) 。
2、如果存在正常數c 和n0 使得當N≥n0 時T(N)≥cg(N) ,則記爲T(N)=Ω(g(N)) 。
3、T(N)=Θ(h(N)) 當且僅當T(N)=O(h(N)) 和T(N)=Ω(h(N)) 。
4、如果對所有的常數c 存在n0 使得當N>n0 時T<cp(N) ,則記爲T=o(p(N)) 。非正式的定義爲:如果T(N)=O(p(N)) 且T(N)≠Θ(p(N)) ,則T=o(p(N)) 。
第一個定義是大O 記法,例T(N)=1000N ,f(N)=N2 ,則1000N=O(N2) ,可以說1000N 是N 平方級的,或大ON 平方級。表示T(N) 的增長率小於等於f(N) 的增長率。當我們說T(N)=O(f(N)) 時,我們是在保證函數T(N) 是在以不快於f(N) 的速度增長;因此f(N) 是T(N) 的一個上界。這意味着f(N)=Ω(T(N)) ,則T(N) 是f(N) 的一個下界。
第二個定義表示T(N) 的增長率大於等於g(N) 的增長率。
第三個定義表示T(N) 的增長率等於h(N) 的增長率。
第四個定義表示T(N) 的增長率小於p(N) 的增長率。