본문 바로가기
Algorithms

그림으로 개념을 이해하는 알고리즘 - Ch 02

by soojitasan 2024. 4. 29. 15:17

CH 02. 선택 정렬

 

 

- 여러개의 원소를 저장하는 방법

1) 배열 : 모든 원소가 정렬 (=인덱스, 0부터 시작), 임의의 원소값 탐색 시 유용

2) 연결 리스트 : 각 원소에 다음 원소 주소 저장, 삽입/삭제 시 유용

 

  배열 리스트
읽기 O(1) O(n)
삽입 O(n) O(1)
삭제 O(n) O(1)

 

- 선택 정렬 : 목록의 모든 원소를 비교, 매 단계마다 가장 작은 원소를 앞으로 보내서 비교하는 방식, O(n^2)

# 가장 작은 값을 찾는 함수
def findSmallest(arr):
  smallest = arr[0]
  smallest_index = 0
  for i in range(1, len(arr)):
    if arr[i] < smallest:
      smallest = arr[i]
      smallest_index = i
  return smallest_index
  
# 선택 정렬
def selectionSort(arr):
  newArr = []
  for i in range(len(arr)):
    smallest = findSmallest(arr)
    newArr.append(arr.pop(smallest))
  return newArr

print(selectionSort([5, 3, 6, 2, 10]))

 


참고자료

Hello Coding 그림으로 개념을 이해하는 알고리즘