기록방

정렬 - 선택정렬(Selection Sort) 본문

CS/알고리즘

정렬 - 선택정렬(Selection Sort)

Soom_1n 2021. 4. 26. 12:04

선택정렬(Selection Sort) : 리스트의 각 인덱스에 들어갈 값을 선택하며 정렬

 

[python]

 

1) 앞에서부터 최소값으로 오름차순 정렬

arr = [9,2,1,4,10,3,7,5,6,8]

for i in range(len(arr)-1) :        #리스트의 인덱스 선택 반복문
    for j in range(i, len(arr)) :   #선택 인데스에 최소값 넣기
        if arr[j] < arr[i] :            #교환
            temp = arr[j]
            arr[j] = arr[i]
            arr[i] = temp
print(arr)                          #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

2) 앞에서부터 최대값으로 내림차순 정렬

arr = [9,2,1,4,10,3,7,5,6,8]

for i in range(len(arr)-1) :        #리스트의 인덱스 선택 반복문
    for j in range(i, len(arr)) :   #선택 인데스에 최대값 넣기
        if arr[j] > arr[i] :            #교환
            temp = arr[j]
            arr[j] = arr[i]
            arr[i] = temp
print(arr)                          #[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

3) 뒤에서부터 최대값으로 오름차순 정렬

arr = [9,2,1,4,10,3,7,5,6,8]

for i in range(len(arr)-1, 0, -1) : #리스트의 인덱스 선택 반복문
    for j in range(i, -1, -1) :     #선택 인데스에 최대값 넣기
        if arr[j] > arr[i] :            #교환
            temp = arr[j]
            arr[j] = arr[i]
            arr[i] = temp
        print(i, j, arr)
print(arr)                          #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

4) 뒤에서부터 최소값으로 내림차순 정렬

arr = [9,2,1,4,10,3,7,5,6,8]

for i in range(len(arr)-1, 0, -1) : #리스트의 인덱스 선택 반복문
    for j in range(i, -1, -1) :     #선택 인데스에 최소값 넣기
        if arr[j] < arr[i] :            #교환
            temp = arr[j]
            arr[j] = arr[i]
            arr[i] = temp
        print(i, j, arr)
print(arr)                          #[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

 

 

 

 

728x90

'CS > 알고리즘' 카테고리의 다른 글

Java 코딩 테스트 교재 #2  (0) 2022.09.20
Java 코딩 테스트 교재 #1  (0) 2022.09.20
정렬 - 버블 정렬(Bubble Sort)  (0) 2021.04.26
정렬 - 삽입정렬(Insertion Sort)  (0) 2021.04.26
[ 정렬 ]  (0) 2021.04.20