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