定理是一种求解递归型程序的时间复杂度的方法。在介绍定理前,我们先引入时间复杂度的概念。
引言——时间复杂度
时间复杂度是衡量程序运行快慢的一个指标,为一个程序语句的执行次数。本文中我们介绍的是渐进的时间复杂度,即对于一个具有多项式的时间复杂度,我们仅取其最高的时间复杂度而忽略掉常数及其它项。
如果一个程序的时间复杂度,那么我们认为这个程序的时间复杂度为.
时间复杂度的分析有多种符号表示,在本文中,我们一律看成。
Master定理
对于非递归的程序,时间复杂度是很好分析的,只需数一数循环次数就行。
对于递归型程序,我们需要用到定理进行分析。
定理:对于一个规模为的问题,通过分治将每个问题分解成个规模为的子问题