public static void main(String[] args) {
		// 二分查找法
		int [] arr = {1,5,7,9,3};
		// 前提:数列有序
		int temp;
		// 冒泡升序排序
		for(int i = 0 ; i < arr.length - 1; i ++){
			boolean isSorted = true;
			for(int j = 0; j < arr.length - 1 -i; j ++){
				if(arr[j] > arr[j + 1]){
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
					isSorted = false;
				}
			}
			if(isSorted)
				break;
		}
		// 二分查找
		Scanner superman = new Scanner (System.in);
		int num;
		System.out.println("-- 输入要查找的数字:");
		num = superman.nextInt();//
		//
		int start = 0;// 起始位置
		int end = arr.length - 1;// 终止位置
		int mid = (start + end) /2 ;// 中间位置
		/*
		 *循环查找
		 *如果要查找的数比mid位置的大,则mid+1作为起始位置
		 *如果要查找的数比mid位置的小,则mid-1作为终止位置
		 *当要查找的数等于mid位置的数,查找成功
		 */
		while(start <= end){// start > end
			if(num > arr[mid]){
				start = mid + 1;
			}else if(num < arr[mid]){
				end = mid -1;
			}else{
				// 相等
				System.out.println("存在:" + mid);
				return;//结束
			}
			mid = (start + end) /2 ;// 重新计算中间位置
		}
		System.out.println("不存在:" + (-mid-1));
		
	}

Q.E.D.