这个是我写的一个二分查找,编译通过,为什么会说是角标越界异常呢?我写了if (min>max)语句啊,和老师写的对比了半天也不知道为什么,求帮助- /*二分查找
- */
- class ArrDemo_2
- {
- public static void main(String[] args)
- {
- int [] arr ={1,2,3,4,5,6};
- halfSearch(arr,31);
-
- }
- public static void halfSearch(int [] arr,int key)
- {
- int min = 0,max = arr.length,mid;
- mid = (min +max)/2;
- while (arr[mid]!=key)
- {
-
- if (arr[mid]>key)
- {
- max = mid-1;
- mid = (min +max)/2;
- }
- else if (arr[mid]<key)
- {
- min = mid+1;
- mid = (min +max)/2;
- }
-
- if (min>max)
- mid=-1;
-
-
- }
- System.out.println(mid);
- }
- }
复制代码 |