반응형
SMALL

순차 탐색(sequential search) :

리스트 안에 있는 원소를 하나씩 순차적으로 비교하면서 탐색한다.

 

순차 탐색 알고리즘

def search_list(a, x):
    n = len(a)          # 입력 크기 n
    for i in range(0, n): # 리스트 a의 모든 값을 차례로
        if x == a[i]:   # x 값과 비교하여
            return i    # 같으면 위치를 돌려 줍니다.
    return -1           # 끝까지 비교해도 없으면 -1을 돌려 줍니다.

v = [ 17, 92, 18, 33, 58, 7, 33, 42]
print(search_list(v, 18)) # 2 ( 순서상 세번째지만, 위치 번호는 2)
print(search_list(v, 33)) # 3 ( 리슽으에서 두 번 나오지만 처음 나온 위치만 출력)
print(search_list(v, 900))# -1(리스트에 없음)

학생 번호에 해당하는 학생 이름 찾기

def get_name(s_no, s_name, find_no):
    n = len(s_no)           # 입력 크기 n
    for i in range(0, n):
        if find_no == s_no[i]:  # 학생 번호가 찾는 학생 번호와 같으면
            return s_name[i]    # 해당하는 학생 이름을 결과로 반환
    return "?"                  # 자료를 다 뒤져서 못 찾았으면 물음표 반환

sample_no = [39, 14, 67, 105]
sample_name = ["Justin", "John", "Mike", "Summer"]
print(get_name(sample_no, sample_name, 105)) # s_name[3] = Summer 반환
print(get_name(sample_no, sample_name, 777)) # 없는 번호, 물음표 반환

 

반응형
LIST

+ Recent posts