프로그래밍/알고리즘 공부
모두의 알고리즘 문제07. 순차 탐색
이자다
2022. 5. 19. 11:04
반응형
def search_list (a, x): # 리스트a, 찾는값x
n=len(a)
for i in range(0, n): # a[0]부터 a[n-1]까지 탐색.
if a[i]==x:
return i #값을 찾으면 리스트 내의 위치를 반환함
return -1
v=[17, 32, 21, 2, 32, 52, 12]
print(search_list(v, 17)) #0
print(search_list(v, 12)) #6
print(search_list(v, 124)) #-1
이 알고리즘을 보수적인 관점에서, 최악의 경우로 분석하면 리스트 길이가 n일 때 비교가 최대 n번 필요하므로 계산 복잡도는 O(n)이다.
물론 찾는 값이 리스트의 맨 처음에 있을 수 있고 중간에 있을 수도 있지만 일단 보수적인 관점에서 최악의 경우를 상정하고 분석한다면 O(n)이 된다.
하지만 이 분석방법이 '정렬'과 만나게 된다면 더 효율적이게 된다고 한다.
반응형