二分查找只适用于有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找
二分查找的运行时间为对数时间O(LONG2 N)
/** * @param arr 待查找的数据 升序排列 * @param target 需要查找的数 * @return 返回对应下标,-1表示没有找到 */ public static int binarySearch(int[] arr ,int target) int left = 0; int right = arr.length-1; while(left<=right) { int mid = (left+right)/2; if(arr[mid] == target){ return mid; }else if(arr[mid]>target){ right =mid-1 ;//需要向左查找 }else{ left = mid+1;//需要右边查找 } return -1; }