lista = [93,45,21,30,20,94,66,71,56]
오름차순 정렬 lista.sort()
for i in range(len(lista)-1) : # index 값으로 접근하기 때문에, lista보다 range를사용 # 채워나가야할 인덱스 , 가장 작은 수가 들어갈 인덱스다. 0,1,2 이렇게 채워넣을거야
# 맨 뒤에 숫자는 비교할 필요가 없으니까 -1 자리까지만 비교하면 된다. # i 자리는 리스트의 숫자만큼이다. 그러나 맨 뒤는 비교할 필요가 없으니까-1적어도ㅇㅋ for j in range(i+1,len(lista)) : # 비교의 대상이 되는 인덱스, 자기 자신과 비교하지 않기 위해서 1자리를 뒤에서 해야하고, i부터 시작하면 되니까 시작을 0부터 아니라 i부터 하면 된다. 포인트는 이미 정렬한 인덱스와는 비교하면 안된다. # j 자리는 리스트의 숫자만큼인데 이미 맨앞으로 간 애들거 비교할 필요가 없으니까 i+1 if lista[i] > lista[j] : # 만약에 i 자리가 j 자리보다 크다면 둘의 위치를 바꿔라 lista[i], lista[j] = lista[j], lista[i]print(lista)
예시)
num_list = [1,3,5,7,10]
n = len(num_list) # 전체 원소의 길이
for i in range(0,n-1) : # 맨 뒤는 누구랑 비교해 비교하지마
for j in range(i+1,n) : # 지랑 지를 비교해? 비교하지마 기준변수(i)와 비교변수(j)를 비교한다
if num_list[i] < num_list[j] : # 크면 교체한다.
temp = num_list[i]
num_list[i] = num_list[j]
num_list[j] = temp
else :
pass
print(num_list)
lista = [93,45,21,30,20,94,66,71,56]
for i in range(len(lista)): #
for j in range(len(lista)-i-1):
if (lista[j] > lista[j+1]):
temp = lista[j]
lista[j] =lista[j+1]
lista[j+1] = temp
print(lista)
재귀함수란, 함수 내에서 함수를 호출하는 것.
반드시 종료 조건이 들어가야 한다 안그러면 무한루프됨
def test1(n) :
return n + test(n-1) 무한루프
def test(n) :
if n == 1 :
return 1 1을 돌려줌
return n + test(n-1) 10+9+8+7+6+5+4+3+2 1은 if문으로 더해줘
print(test(10))
def fact(n) :
if n == 1 :
return 1
return n * fact(n-1)
print(fact(4))
재귀함수는 얼마나 반복해야 할지 알 수 없을 때 사용한다.
ex) 폴더 안에서 파일을 찾을때, 폴더 안에 폴더가 또 있으면 또 폴더로 또 들어가야하니까