기록방
정렬 - 선택정렬(Selection Sort) 본문
선택정렬(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 |