본문 바로가기
AI월드/⚙️AI BOOTCAMP_Section 5

탐색 알고리즘(선형검색, 이진검색)

by khalidpark 2021. 5. 17.

선형 검색

선형 검색은 기본적인 검색 알고리즘으로 한 번에 하나씩 모두 검색

처음부터 하나씩 체크하면서 검색하는 가장 기본적인 검색

 

def linear_search(linear_arr, search_number):
    for i in range(len(linear_arr)):
      if linear_arr[i] == search_number:
        return i

linear_arr = [5,22,87,1,3]
search_number = 1
print("search index : ",linear_search(linear_arr, search_number))

이진 검색

숫자를 반으로 줄이면서 검색을 진행하기 때문에 선형보다 속도가 더 빠르다.
이진 검색 방법은 데이터가 이미 정렬된 경우에만 작동

def binary_search(test_list, search_item):

     low = 0
     high = len(test_list) - 1

     while low <= high:
         middle = (low + high) // 2   # middle을 지정해서 검색속도를 빠르게 한다.
         guess = test_list[middle]

         if guess == search_item:
             return middle
         if guess > search_item:
             high = middle - 1
         else:
             low = middle + 1
     return None

test_list = [6,12,17,23,38,45,77,84]   # 이미 정렬된 리스트에서 검색 진행
print('binary_search',binary_search(test_list, 12))

728x90

댓글