#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)
def sel_sort(a):
n=len(a)
for i in range(0,n-1): #0부터 n-2번까지 반복
#i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음
min_idx=i
for j in range(i+1,n):
if a[j]<a[min_idx]:
min_idx=j
#찾은 최솟값을 i번 위치로
#그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
a[i],a[min_idx]=a[min_idx],a[i]
d=[2,4,5,1,3]
sel_sort(d)
print(d)
#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)
def sel_sort(a):
n=len(a)
for i in range(0,n-1): #0부터 n-2번까지 반복
#i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음
min_idx=i
for j in range(i+1,n):
if a[j]<a[min_idx]:
min_idx=j
#찾은 최솟값을 i번 위치로
#그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
a[i],a[min_idx]=a[min_idx],a[i] #이구문이 if문 밖으로 나와야 한다.
d=[2,4,5,1,3]
sel_sort(d)
print(d)
#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)
#내림차순정렬
def sel_sort(a):
n=len(a)
for i in range(0,n-1): #0부터 n-2번까지 반복
#i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음
min_idx=i
for j in range(i+1,n):
if a[j]>a[min_idx]: #<를 >게 수정하면 된다.
min_idx=j
#찾은 최솟값을 i번 위치로
#그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
a[i],a[min_idx]=a[min_idx],a[i]
d=[2,4,5,1,3]
sel_sort(d)
print(d)
왜 쉽게 설명한 것은 print(함수(리스트))였는데, 일반적인 선택정렬은 print(d)로 끝났을까??
답: 일반 선택정렬에서는 리턴 값이 없음 따라서
#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)
#내림차순정렬
def sel_sort(a):
n=len(a)
for i in range(0,n-1): #0부터 n-2번까지 반복
#i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음
min_idx=i
for j in range(i+1,n):
if a[j]>a[min_idx]: #<를 >게 수정하면 된다.
min_idx=j
#찾은 최솟값을 i번 위치로
#그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
a[i],a[min_idx]=a[min_idx],a[i]
return a #이렇게 return 값을 지정하고
d=[2,4,5,1,3]
print(sel_sort(d))#이렇게 출력하면 값이 나온다!!