黑马程序员Java折半查找

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

java的折半查找用于给定数据在数组中的位置 当然也可以逐个遍历查找 以下是依据黑马java基础教学 里的折半查找做的笔记 

/**
* 折半查找可以提高效率 但必须保证数组为有序的数组

*/
public static int halfSerarch(int[] arr, int key) {
int mid, min, max; // mid 中间index  min最小的index  max最大的index
min = 0;
max = arr.length - 1;  //数据的下标从0开始这里要做减一 防止数组越界
mid = (min + max) / 2;

while(arr[mid]!=key) //当 中间值不等于所给的形参时 触发
{
if(arr[mid]>key)  //中间index值〉所给的形参 意识着给的数较大  所以最小的index 就要往右移在原有中间index基础上+1
min=mid+1;
else if(arr[mid]<key) //中间index值〈所给的形参 意识着给的数较小 同理可得 最大的要往左移在原有中间index基础上-1
max=mid-1; 


if(min>max)  //如果最小的index都比最大的index要大 则表示数组里没有该数
return -1;
mid=(min+max)/2; 
}


return mid;  //找到所给数载数组中的index
}


----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值