선형 검색
선형 검색은 기본적인 검색 알고리즘으로 한 번에 하나씩 모두 검색
처음부터 하나씩 체크하면서 검색하는 가장 기본적인 검색
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
'AI월드 > ⚙️AI BOOTCAMP_Section 5' 카테고리의 다른 글
분할정복(Divide and conquer),퀵정렬,병합정렬과 재귀(Recursion) (0) | 2021.05.18 |
---|---|
선택정렬, 삽입정렬, 버블정렬 (0) | 2021.05.17 |
정렬알고리즘의 필요성과 버블소트(거품정렬)의 이해 (0) | 2021.05.17 |
이진트리 손코딩 (0) | 2021.05.14 |
Tree의 구조 (0) | 2021.05.14 |
댓글