TIL

사전캠프 6일차

ds3hfj 2024. 10. 28. 16:30

선형탐색 - 값을 집어넣으면 그게 리스트 인덱스에 몇번째에 있는지 

li=[1,6,4,2,3,10,8,7,5,9]
n=int(input('1~10'))

for i in range(len(li)):
    if li[i]==n:
        print(i)
        break

 

이진탐색 - 선행조건 1가지 , 리스트 안의 숫자가 정렬되어있어야함. 복잡하지만 실제 검사 횟수가 작아져서 속도가 빨라짐. 

li=[1,3,5,7,9,13,15,17,19]
n=int(input('1,3,5,7,9,13,15,17,19'))

s_index = 0
e_index = len(li)-1

while s_index<=e_index:
    m_index=(s_index+e_index)//2
    if n < li[m_index]:
        e_index = m_index-1
    elif n> li[m_index]:
        s_index=m_index+1
    else:
        print(m_index)
        break
    

선택 정렬 - 작은 순서대로 정렬할 경우 앞에서부터 작은거 하나 골라내고 그 뒤에 남은거 중에 작은거 하나 골라내고 하는 식으로 코드를 짜는 구나. 생각할 점은 m_index=i를 처음에 넣어 주고 li[j]중에 그것보다 작은것 잇다면 위치 바꿔주는 것

추가로 위치 바꿀때 for i in ~ 아래로 줄 맞출것 그래야 원하는 값이 나옴 

li=[2,4,3,31,23,2,5,67,1]

for i in range(len(li)):
    m_index=i
    for j in range(i,len(li)):
        if li[j]<li[m_index]:
            m_index=j
    li[i],li[m_index]=li[m_index],li[i]

print(li)

 

버블 정렬 - 두개씩 비교 더큰값을 뒤로 보낼것

li=[8,6,4,1,2,3,5,10,9,7]

for i in range(len(li)):
    for j in range(len(li)-i-1):
        if li[j]>li[j+1]:
            li[j],li[j+1]=li[j+1],li[j]

print(li)

'TIL' 카테고리의 다른 글

사전캠프 8일차 왜 틀렸을까  (1) 2024.10.30
사전캠프 7일차(화요일)  (1) 2024.10.29
사전교육 4일차  (0) 2024.10.24
사전교육 3일차...  (0) 2024.10.23
사전2일차  (1) 2024.10.22