Java教程

主定理(支配理论)学习笔记

本文主要是介绍主定理(支配理论)学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

用于求解分治法得到的递归关系式。
形如:

\[T(n)=a×T(\frac{n}{b})+f(n) \]

其中\(a,b\)均为常数。


特殊形式:\(f(n)=O(n^d)\)
则:
若\(d>\log_{b}{a}\) => \(T(n)=O(n^d)\)
若\(d<\log_{b}{a}\) => \(T(n)=O(n^{\log_{b}{a}})\)
若\(d=\log_{b}{a}\) => \(T(n)=O(n^d·\log_{2}{n})\)
一般:\(f(n)\)为任意形式
则:
若\(f(n)>n^{\log_{b}{a}}\) => \(T(n)=f(n)\)
若\(f(n)<n^{\log_{b}{a}}\) => \(T(n)=O(n^{\log_{b}{a}})\)
若\(f(n)=n^{\log_{b}{a}}\) => \(T(n)=O(f(n)·\log_{2}{n})\)


例:
①\(T(n)=3×T(\frac{n}{2})+n^2\)
a=3,b=2,d=2 => \(T(n)=O(n^2)\)
②\(T(n)=16×T(\frac{n}{4})+n\)=>\(T(n)=O(n^2)\)
③\(T(n)=T(\frac{n}{2})+2^n\)
\(f(n)=2^n,n^{\log_{b}{a}}=n^0=1\)
考虑\(n\)很大,\(2^n>1\)=>\(T(n)=2^n\)


高深的内容,但于理论方面着实用处很大,受益匪浅。
写此笔记顺便练习Markdown...

这篇关于主定理(支配理论)学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!