순차탐색
- 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법
- 데이터의 개수가 N일 때 최대 N번의 비교 연산이 필요하므로 시간 복잡도는 O(N)이다.
이진탐색
- 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘.
- 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 과정.
- 한 번 확인할 때마다 원소의 개수가 절반씩 줄어들기 때문에 시간복잡도는 O(logN)이다.
def binary_search(array, start, end, target):
mid = (start+end)//2
if target == array[mid]:
return mid
elif target < array[mid]:
return binary_search(array, start, mid-1, target)
else:
return binary_search(array, mid+1, end, target)
이진 탐색 트리
- 부모 노드보다 왼쪽 자식 노드가 작다.
- 부모 노드보다 오른쪽 자식 노드가 크다.
- 그래서 찾고자 하는 데이터에 따라 오른쪽 또는 왼쪽 노드만 방문하면 된다.
Comments