1,二分查找法,其实就是通过三个数来查找
2,选一个开始值,选一个末尾值,在选数组中间值,
3,在用你想查找的值,做比较,如果大于中间值那么把开始值放当刚求的中间值,也就是把中间值当成开始值,继续求平均值,继续跟提供的值做比较
如果是小于中间值那么旧把末尾值变成中间值的位置,继续刚刚的操作,
4,这个比冒泡跟递归要快,但是缺点里面要是有相同数就你懂的,所以所有排序都是要你自己数据结构是什么了,没有好与坏方法,
上代码:/**
* 二分查找法 */ public static int soutBifurcation(int[] array,int fromIndex,int toIndex,int key){ int low=fromIndex; int high=toIndex-1; while(low<=high){ int mid=(low+high)/2;// >>>1 无符号除2 int midVal=array[mid]; if(key>midVal){//去右边找 low=mid+1; }else if(key<midVal){ high=mid-1; }else{ return mid; } } return -(low+1); }
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦