선형탐색 - 값을 집어넣으면 그게 리스트 인덱스에 몇번째에 있는지
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 |