二分
二分
简单介绍一下什么是二分
顾名思义,就是把数组的所有元素一分为二,即从中间切开将数组分为两段,通过对比要查找的元素跟中间元素的大小来判断,要查找的元素在哪一段数组中,每次查询便能将数组的查询范围缩短一半。用于大数据的查询时,能够大大的提高查询效率。
二分主要分为两类
- 整数二分
- 浮点数二分
二分主要有两套模版
第一套模版
如果r = mid的话,那么我们计算mid 的时候不用进行加1操作
void binary_search(int x) { |
第二套模版
如果l = mid的话,我们计算mid 的时候需要加1
void binary_search(int x) { |
浮点数二分
浮点数二分很经典的题目就是求一个浮点数的开N次方问题
如何解决
假如我们开的是3次方,我们需要保证mid * mid * mid尽可能的接近最终的结果,最终判断l 和r是否接近即可
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Freedom Coding!
评论
ValineDisqus