sort/slow-sort
슬로 정렬
- 최선
- n^O(log n)
- 평균
- n^O(log n)
- 최악
- n^O(log n)
- 공간
- O(n)
- 안정성
- 불안정
- 방식
- 비교 기반
언어를 고르면 코드가 열린다
def slow_sort(a, lo, hi): if lo >= hi: return mid = (lo + hi) // 2 slow_sort(a, lo, mid) slow_sort(a, mid + 1, hi) if a[mid] > a[hi]: a[mid], a[hi] = a[hi], a[mid] slow_sort(a, lo, hi - 1)
function slowSort(a, lo, hi) { if (lo >= hi) return; const mid = (lo + hi) >> 1; slowSort(a, lo, mid); slowSort(a, mid + 1, hi); if (a[mid] > a[hi]) [a[mid], a[hi]] = [a[hi], a[mid]]; slowSort(a, lo, hi - 1); }
static void swap(int a[], int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } void slow_sort(int a[], int lo, int hi) { if (lo >= hi) return; int mid = (lo + hi) / 2; slow_sort(a, lo, mid); slow_sort(a, mid + 1, hi); if (a[mid] > a[hi]) swap(a, mid, hi); slow_sort(a, lo, hi - 1); }
void slow_sort(std::vector<int>& a, int lo, int hi) { if (lo >= hi) return; int mid = (lo + hi) / 2; slow_sort(a, lo, mid); slow_sort(a, mid + 1, hi); if (a[mid] > a[hi]) std::swap(a[mid], a[hi]); slow_sort(a, lo, hi - 1); }
static void SlowSort(int[] a, int lo, int hi) { if (lo >= hi) return; int mid = (lo + hi) / 2; SlowSort(a, lo, mid); SlowSort(a, mid + 1, hi); if (a[mid] > a[hi]) (a[mid], a[hi]) = (a[hi], a[mid]); SlowSort(a, lo, hi - 1); }
static void swap(int[] a, int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } static void slowSort(int[] a, int lo, int hi) { if (lo >= hi) return; int mid = (lo + hi) / 2; slowSort(a, lo, mid); slowSort(a, mid + 1, hi); if (a[mid] > a[hi]) swap(a, mid, hi); slowSort(a, lo, hi - 1); }