1 二分查找
二分查找前提是數組有序。
- 先令,left = 0 , right = 7
- mid = (right + left) / 2;如果mid的值大于要查找的值,則right = mid - 1;如果小于,left = mid + 1;如果mid的值等于要查找的值,查找成功。
- 重復步驟2,直到查找成功或者 left > right。

上面和下面的三個式子,分別為循環的條件,left和right的變化規則。這三套式子,是正確的可查找的式子。其他式子可能查找不到。
left<=right
left=mid+1
right=mid-1
和
left<right
left=mid+1
right=mid
package com.qcby.查找;public class Binary_Search {public static void main(String[] args) {int[] arr= {2,15,50,67,80,99};System.out.println(search(arr,67));}public static int search(int[] arr,int value) {int left=0;int right=arr.length-1;while(left<=right) {int mid=(left+right)/2;if(arr[mid]==value) {return mid;}else if(arr[mid]<value) {left=mid+1;}else {right=mid-1;}}return -1;}
}
時間復雜度:O(logn)。具體求法見時間復雜度1.2.4。