折半查找
1 package com.briup.day05;
2 public class HalfSearch{
3 public static int halfSearch(int [] arr,int key){
4 int min,max,mid;
5 min = 0;
6 max = arr.length-1;
7 while (min <= max){
8
9 mid = (min + max)>>1;
//除2操作,和(min + max)/2 效果是等同的
10 if(key > arr[mid])
11 min = mid+1;
12 else if(key < arr[mid])
13 max = mid-1;
14 else return mid;//返回查找到的角标
15 }
16 return -1;//找不到则返回-1
17 }
18 public static void printSearch(int [] arr){
19 for(int x : arr)
20 System.out.println(x);
21 }
22 public static void main(String [] args){
23 int [] arr = {1,5,2,3,7};
24 // printSearch(arr);
25 int index = halfSearch(arr,3);
26 System.out.println(index);
27 // printSearch(arr);
28
29 }
30 }