本文主要是介绍深刻理解二分(折半查找),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、引言:
二分查找算法真是一个老生常谈的话题了,相信很多人都能解释出二分查找算法的原理并加以一定的演示。但是如果让你空手码出一段没有bug的二分查找的代码,恐怕就没有说的那么简单了(十个二分九个错)。归根结底,还是自己对算法的细节部分没有完全掌握,即区间问题。
大家一定见过不同版本的二分算法,有的while
判断条件是<=
,有的while
判断条件是<
;有的mid=r
,有的mid=r-1
。(这就是不同区间表示形式所导致的)
二、左闭右开区间:[l,r)
int binary_search1(int array[], int n, int key)
{int mid, l = 0, r = n; //此时数组区间表示为[0,n) 等价于 [0,n - 1]。while (l < r){
这篇关于深刻理解二分(折半查找)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!