百度百科的解釋
二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須採用順序存儲結構,而且表中元素按關鍵字有序排列。
查找過程:首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查找關鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查找關鍵字,則進一步查找前一子表,否則進一步查找後一子表。重複以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在爲止,此時查找不成功。
以上的定義咱們提取一下關鍵詞
二分查找的前提條件必須是順序存儲。也就是說二分查找的前提條件數據必須是有序的!
現在學習一下二分查找的處理邏輯
代碼實現
public static int binarySearch(int[] srcArray, int des) {
int start = 0;
int end = srcArray.length - 1;
while (start <= end) { // 循環條件
int middle = (start + end) >>> 1; // 頭加尾除以2 得到中間值
if (des == srcArray[middle]) {
return middle;
} else if (des < srcArray[middle]) { // 取得中間值比目標值大,說明目標值在中間值的左邊
end = middle - 1;
} else { // 取得中間值比目標值大,說明目標值在中間值的右邊
start = middle + 1;
}
}
return -1; // 沒有找到返回-1
}
文章是自己學習的總結,如有問題望各位指出