Java数组实现二分法查找

/**
* @author:肖佳嘉
*
*/
package array_test;

public class array_test {
	public static void main(String[] args) {
		int [ ] arr = {11,22,33,44,55,66,77,88};			//定义一个数组
		System.out.print(arrayserch(arr, 11)+"  ");			//输出测试
		System.out.print(arrayserch(arr, 77)+"  ");
		System.out.print(arrayserch(arr, 99)+"  ");
	}
	public static int arrayserch(int [ ] arr ,int value){
		int min=0;											//索引最小值
		int max=arr.length-1;								//索引最大值
		int mid=(min+max)/2;								//索引中间值
		
		while(arr[mid]!=value){								//当中间值不等于查找值的时候进入循环
			if(arr[mid]>value) {
				max=mid-1;
			}else if(arr[mid]<value) {
				min=mid+1;
			}
			mid=(min+max)/2;
			if(min>max) {
				return -1;									//当索引不在数组中的时候,返回-1
			}
		}
		return mid;
	}
}


    //结果输出: 0   6  -1
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注