[알고리즘] 퀵 정렬
퀵 정렬 분할정복방법론 다른 완소와의 비교만으로 정렬을 수행하는 비교 정렬에 속함 최악 시간복잡도 - O(n^2), 평균 시간복잡도 - O(nlogn) 일반적으로 다른 O(nlogn)알고리즘에 비해 훨씬 빠르게 동작 피봇은 제일 오른쪽에 있는 값으로 설정 #include void quickSort(int *A, int p, int r) { int q; if (p < r) { q = partition(A, p, r);// 분할 quickSort(A, p, q - 1);// 왼쪽 부분 배열 정렬 quickSort(A, q + 1, r);// 오른쪽 부분 배열 정렬 } } int partition(int *A, int p, int r) { int i = p; int j = p; int tmp = 0; whil..
[알고리즘] 병합 정렬
https://www.youtube.com/watch?v=oHRChO--Hjs 이보다 친절한 수업은 없다 내가 짠 코드 #include #include void merge(int* a, int p, int q, int r); void mergeSort(int* a, int p, int r) { int q; if (p < r) { q = (p + r) / 2; mergeSort(a, p, q);// 전반부 mergeSort(a, q + 1, r);// 후반부 merge(a, p, q, r); } } void merge(int* a, int p, int q, int r) { int i; int p_idx = p; int q_idx = q + 1; int r_idx = r; int a_idx = p; int*..