读书人

透过大脑思考的:二分查找

发布时间: 2012-09-10 11:02:32 作者: rapoo

经过大脑思考的:二分查找

首先声明:这是一个经过同学分析的、老师要求的、自己脑袋思考的、打过草稿的、用圆珠笔,右手亲手写的java有关的二分查找。

?

什么是二分查找:以一个数组(已经升序排列好了的)来分析,首先找到整个数组索引值的中间点的数组的key,如果等于你所要找的值X则这个索引值就是你要找的;如果>X,证明素要找的的前半部分,否则在后半部分,然后递归即可。(当然,这是我个人的理解)

?

?我的代码实现:

int    bin_search (NODE array[ ],int n,int k){ int low=0,hig=n-1,mid; while(low<=hig)   { mid=(low +hig)/2;                           //取区间中点     if (array[mid].key= =k) return(mid);      //查找成功     if (array[mid].key>k)         hig=mid-1;                                   //在左子区间中查找           else  low=mid+1;  }                     //在右子区间中查找          return(-1); }                                         //查找失败

?

感觉还是自己写的自己理解容易些,多亏了志桢和国栋耐心的修改哈!虽然之前就看过二分查找,也大致了解二分的思想,但到底还是不动手不知道这个有多难啊!!!

读书人网 >编程

热点推荐