《演算法圖解》筆記-Binary Search
阿新 • • 發佈:2021-02-07
@Binary Search Algorithm
Binary Search
前提
一定要是:A sorted list.
演算法過程
- 找出中間元素;
- 與target num 進行比較:
- “=” => 搜尋過程結束;
- middle > target => left = mid-1
middle < target => right = mid+1
繼續迴圈比較
直到 left > right - 如果在某一步驟陣列為空,則代表找不到。
程式碼實現
Python
def binarySearch(arr,target):
l = 0
r = len(arr)-1
while l <= r:
#防止溢位
mid = l+(r-l)/2
#開始比較
if arr[mid]==target:
return mid
elif arr[mid] < target:
l = mid+1
else: r = mid - 1
return None
Java
public static int binarySearch(int[] arr,int target){
int l = 0;
int r = arr.length - 1
while (start <= end){
//防止溢位
int mid = start + (end - start)/2;
if (arr[mid] ==target)
return mid;
else if (arr[mid] < target)
l = mid + 1;
else { r = mid -1;
}
}
return false;
}
java 陣列和字串的長度獲取(經常忘記)
// 獲取陣列的長度
int[] arr = new int [3];
System.out.println(arr.length);
// 獲取字串的長度
String str = "小黃花";
System.out.println(str.length());
Running Time
Big O notation
看演算法執行速度
圖片上傳失敗,稍後待更新