实用算法

什么是 二分法 ?

2019-07-22  本文已影响0人  魔都一只土拨鼠

二分法

原文:https://github.com/googege/AMAC/tree/master/basic/8
主要是原文里有不少的代码,看字不如看代码

二分法是针对的有序的序列,我们将要找的数字跟这个区间内的中位数进行比较,然后确定是做区间还是右区间,这点倒是很像分治的思想,例如快排中选择一个基点然后左右排列,递归,所以二分法很像分治的思想。

二分查找的不可用的地方

时间复杂度

很明显每次都是对折如果我们反过来看从1开始每次都是2倍自己那么我们可以得到的是2^k = n 很明显是指数,所以当我们从n然后推出k的时候
也很明显了,就是用的指数的对边 --- 对数 所以它的时间复杂度就是 log2n 我们可以简称为 logn 而且没有任何的其它项,所以说,这就是为什么
二分法比某些O(1)还要快的原因 --- O(1)有可能常数项是100000 但是 log2n就比这个数字小的多.

二分法的变形算法

上一篇下一篇

猜你喜欢

热点阅读