재귀호출로 문제를 해결할 수 있는지 잘 고민해 보아야 한다.(Stack Overflow 주의)
\- 비교하는 과정이 상수 시간이라는 가정 아래, n개의 주어진 리스트를 선택정렬로 정렬한다면 O(n²)의 시간이 걸린다.
📒 갈무리 - 퀵정렬(Quick Sort) 📌 퀵정렬이란? - 피봇을 기준으로 작거나 같은 값의 데이터는 앞으로, 큰 값의 데이터는 뒤로 이동시켜, 작은 값과 큰 값을 분리해가며 정렬하는 방법이다.
📒 갈무리 - 버블정렬(Bubble Sort) 📌 버블정렬이란? - 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내는 정렬방식 이다.   📌 버블정렬 진행 순서 1. 첫번째 데이터와 두번쨰 데이터를 비교하여 첫번째 값이 더 크면 두번째 데
\- 거의 정렬이 완료된 데이터들을 정렬할 때 매우 유리하다.
\- 항상 O(N\*logN)의 시간 복잡도를 보장한다는 점에서 강력한 정렬 알고리즘이라 할 수 있다.
O(1) < O(logN) < O(nLogn) < O(n²) < O(2ⁿ)
\- 퀵 정렬(Quick Sort)
\- 퀵 정렬보다 빠르진 않지만 퀵 정렬이 가지는 한계점을 보완한다.
\- 정렬할 데이터의 가장 큰 값을 Counting배열의 크기로 설정해야 한다.
\- rightValue의 범위를 기준으로 rightValue와leftValue, pivotValue, pastPivotValue의 값을 변경해 가며 문제를 해결한다.
📒 다익스트라(Dijkstra) 📌 다익스트라 알고리즘이란? 다이나믹 프로그래밍(DP)을 활용하 대표적인 최단 경로 탐색 알고리즘 다익스트라 알고리즘이 DP인 이유는 최단 거리는 여러 개의 최단 거리로 이루어져 있기 때문이다. (하나의 최단 거리를 구할 때 그 이전
다익스트라 알고리즘을 확장하여 만들어진 경로 탐색 알고리즘주로 게임에서 플레이어를 목표 지점으로 이동시킬 때 사용한다.시작 노드와 목적지 노드를 분명하게 지정하여 이 두 노드 간의 최단 경로를 파악하는 알고리즘휴리스틱 추정값을 통해 알고리즘을 개선할 수 있다.이러한 휴