复制代码
- class xiao
- {
- public static void main(String[] args)
- {
- int []arr={1,2,3,4,5,6};
- int index=halfSearch(arr,5);
- /*
- halfSearch(arr,5)这部分是否就等于return后面的值?下午那会有点糊涂,
- 一直纠结于为什么调用halfSearch函数后系统知道返回的mid是数组的角标而不是把它当作数组中的值?
- 它是通过什么识别的?
- 现在有点明白了。它是调用函数后提取返回的值,不管具体的是多少。
- 给数组遍历的话还好理解,因为返回值类型是void的。没有具体返回值。
- */
- System.out.println("index="+index);
- }
- public static int halfSearch(int [] arr,int key)
- {
- int min=0,max=arr.length-1,mid;
- mid=(min+max)/2;
- while (arr[mid]!=key)
- {
- if (key>arr[mid])
- min=mid+1;
- else if (key<arr[mid])
- max=mid-1;
- if (min>max)
- return -1;
- mid=(max+min)/2;
- }
- return mid;
- }
- }
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |