🔑알고리즘/programming language

[Python] 선택정렬 오름차순 구현하기

pkyung 2021. 5. 10. 18:20
반응형

이 리스트를 선택정렬로 구현해보도록 합시다.

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)

 

 

이 코드를 실행했을 때 나오는 결과입니다. 

반응형