-
정렬 알고리즘 - 선택 정렬Python/알고리즘 2022. 9. 6. 21:07
처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꿈
시간 복잡도는 O(N^2)
답안 예시
array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]
for i in range(len(array)):
min_index = i # 가장 작은 원소의 인덱스
for j in range(i+1, len(array)):
if array[min_index] > array[j]:
min_index = j
array[i], array[min_index] = array[min_index], array[i] # 스와프
print(array)작성한 답안
numList = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]
result = []
min = 0
# 오름차순으로 정렬될때까지 반복
while True:
min = numList[0]
for i in range(1, len(numList)):
# min(최소값)과 비교하며 데이터 바꿈
if min > numList[i]:
min = numList[i]
# 최소값(min)을 result에 입력
result.append(min)
# 최소값(min)을 원본(numList)에서 제거
numList.remove(min)
# 원본(numList)에 데이터가 없어지면 반복문 나감
if len(numList) == 0:
break
print(result)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
출처 : https://www.youtube.com/watch?v=KGyK-pNvWos&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=4
'Python > 알고리즘' 카테고리의 다른 글
정렬 알고리즘 - 퀵 정렬 (0) 2022.09.08 정렬 알고리즘 - 삽입 정렬 (0) 2022.09.06 DFS & BFS 기초 문제풀이 < 미로 탈출 > (0) 2022.08.30 DFS & BFS 기초 문제풀이 < 음료수 얼려 먹기 > (0) 2022.08.30 BFS (Breadth-First Search) (0) 2022.08.30