inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[워밍업 클럽 3기] CS 3주차 - 자료구조와 알고리즘 미션

주이
0

  1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.

1) 버블 정렬(Bubble Sort)

앞에 있는 숫자와 옆에 숫자를 비교해서 자리를 바꾸는 알고리즘

성능 - O(n^2)

(n-1) + (n-2) + (n-3) … + 2 + 1 → 등차수열

n(n-1)/2 → (n^2 - n)/2

 

2) 선택 정렬(Selection Sort)

배열의 정렬되지 않은 영역의 첫 번째 원소를 시작으로 마지막 원소까지 비교 후 가장 작은 값을 첫 번째 원소로 가져옴

성능 - O(n^2)

(n-1) + (n-2) + (n-3) … + 2 + 1 → 등차수열

n(n-1)/2 → (n^2 - n)/2

 

3) 삽입 정렬(Insertion Sort)

정렬되지 않은 영역의 처음 데이터를 꺼내서, 정렬된 영역 뒤에서 부터 비교하고 적절한 위치에 삽입하여 정렬

성능 - O(n^2)

 

4) 병합 정렬(Merge Sort)

배열을 반 씩 분할하고, 가장 작은 단계까지 분할 후 순서에 맞게 병합 - 재귀로 정렬하는 알고리즘

성능 - O(nlogn)

 

5) 퀵 정렬(Quick Sort)

분할 정복 알고리즘(재귀 사용)

성능 - Θ(nlogn) / O(n^2)


  1. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.

답변 0