黑马程序员Java折半查找

来源:互联网 发布:淘宝卖家经常改价 编辑:程序博客网 时间:2024/05/22 05:24

----------- 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
原创粉丝点击