728x90
Sentinel Linear Search
보초법을 사용한 선형 검색을 적용해 보았다.
예시
1 리스트에서 가장 앞에 있는 특정 숫자 검색하고 위치(인덱스) 출력하기
def sentinelSearch(arr, key):
arr.append(key)
n = 0
answer = 0
while True:
if arr[n] == key:
if n != len(arr) - 1:
answer = n
break
else:
answer = -1
break
n += 1
return answer
print(sentinelSearch(nums, 10)) # 출력 2
2 리스트에서 특정 숫자 모두 검색하고 각각의 위치(인덱스)와 검색 개수 출력하기
def sentinelSearchAll(arr, key):
searchIdx = []
arr.append(key)
n = 0
while True:
if arr[n] == key:
if n != len(arr) - 1:
searchIdx.append(n)
else:
break
n += 1
return searchIdx, len(searchIdx)
print(sentinelSearchAll(nums, 10)) # 출력 ([2, 5, 8, 11], 4)
설명
2021.11.05 - [스터디(zero-base)/알고리즘] - Algorithms. 선형 검색
Algorithms. 선형 검색
wikipedia 순차 검색 알고리즘(sequential search algorithm), 또는 선형 검색 알고리즘(linear search algorithm)은 리스트에서 특정한 값을 찾는 알고리즘의 하나다. 이것은 리스트에서 찾고..
yeonipp.tistory.com
728x90
'제로베이스 > 알고리즘' 카테고리의 다른 글
Algorithms. 순위 (0) | 2021.11.29 |
---|---|
Algorithms. 이진 검색 예시 (0) | 2021.11.12 |
Algorithms. 이진 검색 (0) | 2021.11.10 |
Algorithms. 선형 검색 (0) | 2021.11.05 |
Algorithms. DFS(Depth First Search) 알고리즘 (0) | 2021.11.02 |