We-Co

[We-Co] 리스트 선택정렬 본문

Python/Algorithm

[We-Co] 리스트 선택정렬

위기의코딩맨 2021. 7. 28. 14:22
반응형

안녕하세요. 위기의 코딩맨입니다.

오늘은 간단하게 Python으로 선택정렬 하는 알고리즘에 대해 알려드리겠습니다.

 

 

기본적인 정렬하는 방법인데 

  1. 해당 리스트의 최소 값을 찾는다
  2. 그 최소 값과 맨 앞에 위치한 값과 교체한다.
  3. 처음을 제외한 나머지 리스트를 같은 방법으로 비교한다.

이런 방식으로 쉽게 생각하시면 됩니다. 위 해당 방법을 그림으로 표현하면..

 

[출처] https://velog.io/@dongchyeon/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

이제 소스를 보겠습니다.

 

# 선택 정력
def Select_list(A):
    num_ = len(A)
    for i in range(num_-1):
        la = i
        for j in range(i+1, num_):
            if A[j] < A[la]:
                la = j
        A[i], A[la] = A[la], A[i]
    return A

 

num_에 A라는 리스트의 길이를 넣어주고

그 길이만큼 for문을 돌려주도록 합니다.

다음 j for문은 비교할 값을 넣어주도록 합니다.

해당 첫번째 값 다음 값부터 비교하면 되므로 i+1d을 해주도록 합니다.

if문에서 비교 연산으로 최소 값을 갱신해 주도록 합니다.

최소 값을 갱신하고, 처음에 1,2,3번중 2번 설명과 같이 최소 값과 처음 값을 바꿔주는 코드입니다.

for문 i가 완료 될때 까지 계속 진행 후, 정렬된 리스트 A를 리턴 해주도록 합니다.

 

 

 

오늘은 간단하게 선택정렬 알고리즘을 알아보았습니다.

하지만 python에  list.sort() 방법도 있으니 잘 활용해서 사용하시면 될 것같습니다.

 

반응형

'Python > Algorithm' 카테고리의 다른 글

[We-Co] DFS, BFS - Python  (0) 2022.02.15
[We-Co] 최대 공약수 , 최소 공배수 - Python  (0) 2022.02.15
[We-Co] Python 리스트 sort(), sorted()  (0) 2021.08.03
[We-Co] 퀵정렬 (Quick sort)  (0) 2021.07.31
[We-Co] 람다 lambda  (0) 2021.07.30