黑马程序员技术交流社区
标题:
基础视频day04练习2
[打印本页]
作者:
不怕黑人
时间:
2015-7-17 19:27
标题:
基础视频day04练习2
public class day4Test2 {
public static void main(String[] args) {
int[] arr = {1,3,4,5,6,9};
System.out.println(halfSearch_2(arr,5));
}
public static int halfSearch_1(int[] arr,int key){
//折半查找方法1
int max=arr.length-1,min=0,mid=(max+min)/2;
while(arr[mid]!=key){
if(arr[mid]>key)
max=mid-1;
else if(arr[mid]<key)
min=mid+1;
if(min>max)
return -1;
mid=(max+min)/2;
}
return mid;
}
public static int halfSearch_2(int[] arr,int key){
//折半查找方法2,相较于1要简单,这里注意else if的使用,如果没有else if则第一个条件没满足直接跳到else执行。
int max=arr.length-1,min=0,mid;
while(min<=max){
mid=(max+min)>>1;
if(arr[mid]>key)
max=mid-1;
else if(arr[mid]<key)
min=mid+1;
else
return mid;
}
return -1;//这里如果返回 min则可以实现知道插入元素位置的功能。
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2