时间复杂度:O(log2n)
package com.ilqjx.csdn;
public class BinarySearch {
public static void main(String[] args) {
// 二分查找的前提:数组必须是有序的,升序、降序都可
int[] arr = new int[]{-11, 0, 5, 98};
int num = 5; // 要查找的数
int left = 0;
int right = arr.length - 1;
int mid;
boolean flag = false;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] < num) {
left = mid + 1;
} else if (arr[mid] > num) {
right = mid - 1;
} else {
System.out.println("目标数的索引为:" + mid);
flag = true;
break;
}
}
if (!flag) {
System.out.println(num + "不在此数组中");
}
}
}