제로베이스/알고리즘

Algorithms. 선형 검색 예시

진주네카라 2021. 11. 9. 19:57
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