차밍이

[알고리즘] 패스트캠퍼스 알고리즘 학습 - 선택 정렬(Selection Sort) 본문

파이썬/알고리즘

[알고리즘] 패스트캠퍼스 알고리즘 학습 - 선택 정렬(Selection Sort)

2021. 4. 3. 22:50
반응형

1. 선택 정렬 이란?

  1. 주어진 데이터 중, 최솟값을 찾는다.
  2. 해당 최소값을 가장 맨 앞의 데이터의 위차와 교체한다.
  3. 맨 앞의 최소값 데이터를 제외한 나머지 데이터를 대상으로 동일한 방법을 반복한다.

출처 : 위키백과

 

2. 예제 코드

import random

data_list = random.sample(range(100), 10)
print(data_list, end="\n\n")

for i in range(len(data_list)-1):
    index = i
    for j in range(len(data_list)-i):
        if data_list[index] > data_list[j+i]:
            index = j+i
    data_list[index], data_list[i] = data_list[i], data_list[index]
    print(data_list)

>>>>
[43, 58, 50, 82, 0, 11, 16, 80, 79, 6]

[0, 58, 50, 82, 43, 11, 16, 80, 79, 6]
[0, 6, 50, 82, 43, 11, 16, 80, 79, 58]
[0, 6, 11, 82, 43, 50, 16, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 82, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 82, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 82, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 58, 80, 79, 82]
[0, 6, 11, 16, 43, 50, 58, 79, 80, 82]
[0, 6, 11, 16, 43, 50, 58, 79, 80, 82]

순차적으로 데이터를 정렬해나가는 모습을 볼 수 있다.

가장 작은 값을 앞쪽에 위치할 수 있도록 바꾸어주고 있다.

가장 작은 값이 들어있는 부분을 index라는 값으로 찾다가 마지막에 해당 위치와 바꿔주는 방식으로 진행된다.

 

 

반응형

관련된 글 보기

Comments