⚙️ C++/알고리즘 이론
[C++] Merge Sort, Quick Sort
정의 병합 정렬과 퀵 정렬은 분할 정복 알고리즘이며, 정렬 속도가 매우 빠르다. 퀵 정렬이 평균적으로 더 빠르지만 오름차순(또는 내림차순)일 때 최악의 경우에 O(n²)이다 하지만 Algorithm 헤더파일의 sort 함수는 퀵 정렬이며, 아래의 방식으로 최악의 경우를 피한다 피벗을 랜덤으로 지정 3개의 피벗 중에 중앙값을 사용 Merge Sort Quick Sort 공통점 평균 O(NlgN) 장점 stable_sort가 가능 임시 배열을 사용하지 않아서 cache hit rate가 높음 Merge Sort 예시코드 #include using namespace std; int arr[1000001]; int tmp[1000001]; void merge(int st, int en){ int mid = (s..