반응형
이 리스트를 선택정렬로 구현해보도록 합시다.
list1 =[5,9,2,3,1]
일단 선택정렬에 대해 알아볼까요?
5 | 9 | 2 | 3 | 1 |
1 | 9 | 2 | 3 | 5 |
1 | 2 | 9 | 3 | 5 |
1 | 2 | 3 | 9 | 5 |
1 | 2 | 3 | 5 | 9 |
선택정렬이란?
첫 번째 값인 5 / 9,2,3,1 이 중에 최솟값인 1을 찾아서 5와 자리를 바꾼다.
1 / 9 / 2,3,5 이 중에 최솟값은 2를 찾아 9와 자리를 바꾼다.
1 / 2 / 9 / 3,5 이 중에 최솟값인 3을 찾아 9와 자리를 바꾼다.
1 / 2 / 3 / 9 / 5 이 중에 최솟값인 5를 찾아 9와 자리를 바꾼다.
1 / 2 / 3 / 5 / 9 로 정렬된다.
list1 =[5,9,2,3,1]
print(0,"번 째 반복 : ",list1)
for i in range(len(list1)-1):
min_v = min(list1[i:]) # 0,1,2,3 : 4 에서의 최솟값을 찾는다
index = list1.index(min_v) # 최솟값일 때의 인덱스
index1 = list1[i] # 바뀔 값을 index1이라는 변수에 저장해놓음
for j in range(len(list1)-1):
list1[i] = min_v # 두 수 바꾸기
list1[index] = index1
print(i+1,"번 째 반복 : ",list1)
print(list1)
이 코드를 실행했을 때 나오는 결과입니다.
반응형
'🔑알고리즘 > programming language' 카테고리의 다른 글
Java 객체 지향 프로그래밍 void if return의 사용 (0) | 2021.09.11 |
---|---|
[Python] 엑셀에서 csv로 바뀔 때 생긴 한글 에러 해결 방법 (0) | 2021.07.22 |
[Python] 문자열 함수 정리 (count(),split(),replace() 등) (0) | 2021.06.21 |
[Python] 거스름돈 동전 적은 개수 알고리즘 (while 사용) (0) | 2021.05.19 |
[Python] while문 무한 루프 빠져나가기 - 문자열 특정 개수 출력 (0) | 2021.05.05 |