1. 程式人生 > 其它 >《演算法圖解》筆記-Binary Search

《演算法圖解》筆記-Binary Search

技術標籤:演算法圖解-筆記演算法

@Binary Search Algorithm

Binary Search

前提

一定要是:A sorted list.

演算法過程

  1. 找出中間元素;
  2. 與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

看演算法執行速度

圖片上傳失敗,稍後待更新