二分法可以有效减少算法的时间复杂度,主要是因为二分法可以将一个庞大数据集逐渐分割成多个独立小数据集。如下图所示。
二分法深度logN,底数为2。计算方法如下:假设深度为x,则N*2^x=1,的x=logN,底数为2。
从算法的层面来说,基于二分思想的算法,算法的循环次数一般为logN。
我们知道,很多算法都是基于二分思想设计的,如二分查找、快速排序法。
对于快速排序法平均时间复杂度的估算:
该算法的循环次数为logN即二分深度。每次循环时间复杂度小于N,则可得快速排序法的平均时间复杂度为NlogN。这里的估算是一种理想下的评估,实际情况下可能不是每次循环都满足二分。