순차 탐색 Sequential Search 데이터가 담겨있는 list를 앞에서부터 하나 씩 비교해서 원하는 데이터를 찾는 방법 알고리즘을 잘 몰라도 간단하게 구현할 수 있는 알고리즘 구현 def sequential(data_list, find_data): print(data_list) for i in range(len(data_list)): if data_list[i] == find_data: return i return -1 sequential(data_list, 32) 시간 복잡도 최악의 경우 모든 list를 다 확인해야 할 수 있음 O(n)
Binary Search 정렬된 리스트에서 범위를 줄여가며 결과값을 찾는 알고리즘 정렬된 상태에서만 사용이 가능하지만 탐색할 때마다 탐색 범위가 줄기 때문에 속도가 빠름 직관 Up & Down 게임 1 ~ 100 사이의 숫자라고 할 때 1 부터 추리하기보다는 50부터 추리하여 탐색 범위를 줄임 순차 탐색과 이진 탐색 비교 분할 정복 알고리즘과 이진 탐색 분할 정복 알고리즘 (Divide and Conquer) Divide : 문제를 하나 또는 둘 이상으로 나눈다. Conquer : 나눠진 문제가 충분히 작고, 해결이 가능하다면 해결하고 그렇지 않다면 다시 Divide 이진 탐색 알고리즘 (Binary Search) Divide : 리스트를 두개의 서브 리스트로 나눈다. Conquer 검색 숫자 Searc..