오늘은 정렬 알고리즘에 대해 알아볼 것이다. 대표적인 알고리즘으로는 가장 쉬운 버블정렬, 많이 쓰는 병합정렬, 퀵정렬, 그 외에 삽입정렬, 힙정렬, 기수정렬 등 더 많이 있다. 오늘은 퀵정렬에 대해 알아보겠다. 1 병합정렬 병합정렬의 아이디어는 먼저 기존 배열을 크기가 1인 배열로 분해시킨 다음에 각각의 배열들을 정렬시킨다. 그 다음에 정렬된 배열들을 2개씩 합쳐서 합쳐진 배열들을 정렬시킨다. 이 것을 반복하여서 크기가 원래 배열 크기로 돌아올 때까지 반복한다. 2 시간복잡도 시간복잡도는 $O(n \cdot \log n)$이다. 왜 그렇나면 배열을 나눌 때 $log n$만큼 걸리고 합칠 때 또한 $log n$만큼 걸리고 각각의 배열을 정렬할 때 $n$번 걸린다. 이렇게 하여서 $\log n + n \cd..