본문 바로가기
개발 공부/Data Structure

Binary Search

by jetproc 2023. 12. 7.
728x90

Algorithm 1: Linear Search (Time Complexity: O(n))

Algorithm 2: Binary Search (Time Complexity: O(logn))

- Given Array must be sorted.

#Using Iteration

BinSearch(A,v):
low=0, high=(n-1)
while low<=high do
    mid=(low+high)/2
    if A[mid] == v then
        return mid
    else if A[mid] < v then
        low = mid+1
    else
        high = mid-1
return -1
#Using Recursion

BinSearch(A,v):
return BinSearchHelper(A,0,n-1,v)
    
BinSearchHelper(A,low,high,v):
if low > high then
    return -1
mid = (low+high)/2
if A[mid] == v then
    return mid
else if A[mid] < v then
    BinSearchHelper(A,mid+1,high,v)
else
    BinSearchHelper(A,low,high-1,v)
728x90

'개발 공부 > Data Structure' 카테고리의 다른 글

Node Class를 이용한 Heap 구현  (0) 2023.12.14
DFS, BFS  (0) 2023.12.08
Priority Queues, Heaps  (0) 2023.12.08
Tree  (0) 2023.12.08