반응형

Algorithm 2

[Python] 이진 검색

이진 검색은 원소가 오름차순이나 내림차순으로 정렬된 배열에서 좀 더 효율적으로 검색할 수 있는 알고리즘이다. 이진 검색은 먼저 배열의 중앙에 위치한 원소에 주목한다. 중앙 원소와 Key(검색하고자 하는 값)을 비교하며, 검색 범위를 좁혀가며 탐색을 진행한다. 맨 앞, 맨 끝, 중앙의 인덱스를 각 각 low, mid, high라고 해보자. 1) mid 값이 Key(검색하고자 하는 값)보다 작은 경우 mid 값 포함 하위 값을 검색 범위에서 제외 low = mid + 1 2) mid 값이 Key(검색하고자 하는 값)보다 큰 경우 mid 값 포함 상위 값을 검색 범위에서 제외 high = mid = 1 3) mid 값이 Key(검색하고자 하는 값)과 같은 경우 값을 찾았으므로 종료 이진 탐색 구현 from t..

Algorithm 2022.10.08

[Python] 선형 검색

선형 검색(linear search) 직선 모양(선형으로 늘어선 배열에서 검색하는 경우에 원하는 키 값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘이다. * 선형 검색은 순차 검색이라고도 한다. 배열 맨 앞부터 순서대로 원소를 스캔하는 선형 검색은 원소의 값이 정렬되지 않은 배열에서 검색할 때 사용하는 유일한 방법이다. from typing import Sequence, Any def seq_search(a: Sequence, key: Any) -> int: """시퀸스 a에서 key와 값이 같은 원소를 선형 검색""" for idx, val in enumerate(a): if val == key: return idx return -1 if __name__ == '__main..

Algorithm 2022.10.08
반응형