추가 설명 — 왜 하필 5개로 나누는가

선택 문제의 median of medians는 하필 5개씩 나눴다. 4도 6도 아닌 5인 이유를 따진다.

이 글에서 다루는 내용
  • 그룹 크기 gg를 변수로 놓아 보장 원소 수를 일반식으로 유도
  • 두 부분문제 S(n/g)+S(나머지)S(n/g) + S(\text{나머지})비율 합 < 1이어야 선형이 되는 이유
  • g=3g=3g=4g=4가 실패하는 구체 수치, g=5g=5가 성공하는 이유
  • g=7g=7 이상에서 수축과 그룹 정렬 비용이 맞서는 지점
  • 짝수 그룹이 배제되는 진짜 이유(모호함이 아니라 보장이 n/4n/4에 고정된다는 것)

그룹 크기 g로 일반화

메인 글은 5개씩 묶는 이유를 짧게 예고만 하고 넘어갔다. 여기서는 그 이유를 처음부터 따진다.

nn개의 원소를 gg개씩 묶는다고 하자. 그러면 그룹이 n/gn/g개 생긴다(편의상 nngg의 배수라 가정한다). 각 그룹을 정렬해 그룹 중앙값 XiX_i를 구하고, 그 중앙값들의 중앙값 XX'를 재귀로 찾는다.

XX' 이하임이 보장되는 원소가 몇 개인가?

XX'n/gn/g개의 그룹 중앙값 중 중앙값이므로, 그룹 중앙값의 절반—약 n2g\dfrac{n}{2g}개—이 XX' 이하다. 이 그룹들은 각자 g/2\lceil g/2 \rceil개씩 XX' 이하인 원소를 갖는다(그룹이 오름차순 정렬되어 있어, 중앙값 이하 원소가 정확히 g/2\lceil g/2 \rceil개). 짝수 gg에서는 가운데 두 값 중 아래쪽을 그룹 중앙값으로 삼기로 한다. 위쪽을 골라도 두 방향이 뒤바뀔 뿐 약한 쪽의 개수는 같으므로 결론은 변하지 않는다. 따라서:

보장 원소 수n2gg2n2gg+12=n(g+1)4g\text{보장 원소 수} \approx \frac{n}{2g} \cdot \left\lceil \frac{g}{2} \right\rceil \approx \frac{n}{2g} \cdot \frac{g+1}{2} = \frac{n(g+1)}{4g}

gg가 크면 g+14g14\dfrac{g+1}{4g} \to \dfrac{1}{4}으로 수렴한다 — 아무리 그룹을 크게 묶어도 보장은 n/4n/4 근처를 넘지 않는다.

gg중앙값 이하 개수보장 수식근사
32n62\frac{n}{6} \cdot 20.333n\approx 0.333n
42n82\frac{n}{8} \cdot 2=0.25n= 0.25n
53n103\frac{n}{10} \cdot 3=0.3n= 0.3n
63n123\frac{n}{12} \cdot 3=0.25n= 0.25n
74n144\frac{n}{14} \cdot 40.286n\approx 0.286n

짝수 줄이 둘 다 정확히 0.25n0.25n인 것이 눈에 띈다. 우연이 아니다. g=2kg = 2k에서 하위 중앙값 이하인 원소는 kk개이므로

n2gk=n22kk=n4\frac{n}{2g} \cdot k = \frac{n}{2 \cdot 2k} \cdot k = \frac{n}{4}

kk가 약분돼 사라진다. 짝수는 아무리 크게 묶어도 보장이 n/4n/4에 고정된다. 홀수 gg의 보장 n(g+1)4g\frac{n(g+1)}{4g}는 언제나 n/4n/4보다 크므로, 짝수 gg는 바로 아래 홀수인 g1g-1보다 보장이 작으면서 정렬 비용은 더 든다. 이것이 홀수를 쓰는 진짜 이유다.


선형이 되는 조건

보장 원소가 β0n\beta_0 n개라면, XX'를 pivot으로 쓸 때 재귀하는 쪽의 크기 상한은 (1β0)n(1 - \beta_0)n이다. 선택 알고리즘의 점화식은:

S(n)=S(n/g)중앙값 재귀+S ⁣((1β0)n)partition 후 재귀+O(n)S(n) = \underbrace{S(n/g)}_{\text{중앙값 재귀}} + \underbrace{S\!\bigl((1-\beta_0)n\bigr)}_{\text{partition 후 재귀}} + O(n)

S(n)cnS(n) \le cn이라는 선형 상한이 닫히려면 두 재귀 인수의 비율 합이 1 미만이어야 한다. 이를 α\alpha, β\beta로 표기하면:

α+β<1여기서 α=1g,  β=1β0\alpha + \beta < 1 \qquad \text{여기서 } \alpha = \frac{1}{g},\; \beta = 1 - \beta_0

왜 합이 1 미만이어야 하는지 대입법으로 확인하자. S(n)cnS(n) \le cn을 가정하고 점화식에 넣으면:

S(n)2n+αcn+βcn=2n+(α+β)cnS(n) \le 2n + \alpha cn + \beta cn = 2n + (\alpha + \beta)cn

이 우변이 다시 cncn 이하가 되려면 2n+(α+β)cncn2n + (\alpha+\beta)cn \le cn, 즉 2(1αβ)c2 \le (1-\alpha-\beta)c여야 한다. α+β<1\alpha+\beta < 1이면 (1αβ)(1-\alpha-\beta)가 양수이므로 충분히 큰 유한한 cc를 잡을 수 있다. α+β=1\alpha+\beta = 1이면 불가능하다.


g=5일 때

메인 글의 분석 그대로다. 그룹이 n/5n/5개이므로 α=1/5=0.2\alpha = 1/5 = 0.2. 보장 원소는 n10×3=0.3n\frac{n}{10} \times 3 = 0.3n이므로 β=10.3=0.7\beta = 1 - 0.3 = 0.7.

S(n)=2n+S(0.2n)+S(0.7n),α+β=0.2+0.7=0.9<1S(n) = 2n + S(0.2n) + S(0.7n), \quad \alpha + \beta = 0.2 + 0.7 = 0.9 < 1 \quad \checkmark

(10.9)c2(1 - 0.9)c \ge 2를 풀면 c20c \ge 20. 즉 S(n)20n=O(n)S(n) \le 20n = O(n).


g=3일 때

그룹이 n/3n/3개이므로 α=1/3\alpha = 1/3. 보장 원소는 n6×2=n3\frac{n}{6} \times 2 = \frac{n}{3}이므로 나머지는 nn/3=2n3n - n/3 = \frac{2n}{3}, 즉 β=2/3\beta = 2/3.

S(n)=2n+S ⁣(n3)+S ⁣(2n3),α+β=13+23=1×S(n) = 2n + S\!\left(\frac{n}{3}\right) + S\!\left(\frac{2n}{3}\right), \quad \alpha + \beta = \frac{1}{3} + \frac{2}{3} = 1 \quad \times

비율 합이 정확히 1이다. 대입법은 2n0cn2n \le 0 \cdot cn을 요구하므로 어떤 cc도 맞지 않는다. 실제로 이 점화식은 S(n)=Θ(nlogn)S(n) = \Theta(n \log n)으로 풀린다.


g=7일 때

그룹이 n/7n/7개이므로 α=1/7\alpha = 1/7. 보장 원소는 n14×4=2n7\frac{n}{14} \times 4 = \frac{2n}{7}이므로 β=12/7=5/7\beta = 1 - 2/7 = 5/7.

α+β=17+57=670.857<1\alpha + \beta = \frac{1}{7} + \frac{5}{7} = \frac{6}{7} \approx 0.857 < 1 \quad \checkmark

선형이 성립하고, 비율 합 670.857\frac{6}{7} \approx 0.857g=5g=50.90.9보다 작다. 보장 비율만 보면 2/728.6%2/7 \approx 28.6\%g=5g=530%30\%보다 작지만, α=1/g\alpha = 1/g가 더 빨리 줄어 합은 오히려 내려간다. 수축만 놓고 보면 g=7g=7g=5g=5보다 낫다.

그렇다면 왜 5를 쓰는가. 위 점화식이 덧붙는 항을 2n2n으로 고정해 둔 것이 답을 한쪽으로 기울인다. 실제로는 그룹 하나를 정렬하는 비용이 gg에 따라 늘어난다. gg개를 최악에 정렬하는 데 필요한 최소 비교 횟수는 5개에서 7회, 7개에서 13회이므로 원소당 1.41.4회와 약 1.861.86회다. 덧붙는 항을 agna_g \cdot n으로 두면 상수는

c=ag1αβc = \frac{a_g}{1 - \alpha - \beta}

가 되어 분자와 분모가 함께 커진다. 어느 쪽이 이기는지는 비용 모형이 정한다.

gg비율 합 α+β\alpha+\beta정렬 최소 비교 (원소당)
50.9000.9007회 (1.401.40)
70.8570.85713회 (1.861.86)
90.8330.83319회 (2.112.11)

두 열이 반대 방향으로 움직인다. 그래서 “g7g \ge 7은 이득이 없다”고 단정할 근거는 이 분석 안에 없다. 확실한 것은 5가 조건을 만족하는 가장 작은 크기이고, 그래서 그룹 정렬을 손으로 펼쳐 쓰기에 가장 간단하다는 점이다. 관례가 5로 굳은 이유도 여기에 있다.

그룹 크기 g=3과 g=5의 보장 영역 비교. g=3은 비율 합이 1/3+2/3=1이라 선형 조건을 채우지 못하고, g=5는 0.2+0.7=0.9로 성립한다. 하단 요약 표에는 g=4도 1/4+3/4=1로 실패하고 g=7은 약 0.857로 성립하되 비용이 늘어난다는 비교가 함께 놓인다
그룹 크기 g=3과 g=5의 보장 영역 비교. g=3은 비율 합이 1/3+2/3=1이라 선형 조건을 채우지 못하고, g=5는 0.2+0.7=0.9로 성립한다. 하단 요약 표에는 g=4도 1/4+3/4=1로 실패하고 g=7은 약 0.857로 성립하되 비용이 늘어난다는 비교가 함께 놓인다

짝수는 왜 밀려나는가

짝수 gg가 배제되는 이유를 “중앙값이 두 개라 모호하다”로 설명하면 틀린다. 가운데 두 값 중 아래쪽을 쓴다고 정해 두면 모호함은 사라지고, 위에서 본 대로 계산이 그대로 굴러간다. 짝수가 밀려나는 이유는 모호함이 아니라 수치다.

g=2kg = 2k에서 보장이 kk에 상관없이 n/4n/4로 고정된다는 것을 앞에서 보았다. 하위 중앙값 아래에 2k2k개 중 kk개만 놓이므로, 그룹을 키워 얻은 원소가 약한 쪽에는 하나도 보태지지 않는다. 그래서 짝수 gg는 언제나 β=3/4\beta = 3/4이고, 비율 합은 1g+34\frac{1}{g} + \frac{3}{4}뿐이다.

ggα\alphaβ\beta비율 합선형?
31/31/32/32/311
41/41/43/43/411
51/51/57/107/109/109/10
61/61/63/43/411/1211/12
71/71/75/75/76/76/7

g=4g=4가 탈락하는 이유는 짝수라서가 아니라 비율 합이 정확히 1이기 때문이다. g=3g=3과 같은 방식으로 막힌다. 그리고 g=6g=6은 짝수인데도 11/12<111/12 < 1로 선형이 성립한다. “짝수는 안 된다”는 일반 명제는 성립하지 않는다.

짝수가 실제로 지는 지점은 따로 있다. 모든 짝수 gg바로 아래 홀수 g1g-1에 진다. g=6g=611/1211/12g=5g=59/109/10보다 크고, g=8g=87/87/8g=7g=76/76/7보다 크다. 수축은 더 나쁜데 그룹 하나를 정렬하는 비용은 더 든다. 짝수를 고를 이유가 없는 것이지, 쓸 수 없는 것이 아니다.

이제 남은 후보를 작은 것부터 훑는다.

  • g=1g=1: 그룹 정렬이 없고 그룹 중앙값이 원소 자체다. 중앙값 재귀가 S(n)S(n)이 되어 진전이 없다.
  • g=2g=2: α=1/2\alpha = 1/2, β=3/4\beta = 3/4로 합이 5/4>15/4 > 1. 실패.
  • g=3g=3: 비율 합 =1= 1. 등식이라 실패.
  • g=4g=4: 비율 합 =1= 1. 등식이라 실패.
  • g=5g=5: 비율 합 =0.9<1= 0.9 < 1. 성립하는 가장 작은 크기.
핵심 정리
  • 그룹 크기 gg로 묶으면 두 부분문제 S(n/g)S(n/g)S((1β0)n)S((1-\beta_0)n)이 생긴다.
  • 선형 보장의 필요충분 조건: 비율 합 α+β=1g+(1β0)<1\alpha + \beta = \tfrac{1}{g} + (1-\beta_0) < 1.
  • g=3g=3: 13+23=1\frac{1}{3} + \frac{2}{3} = 1 — 등식이라 선형 깨짐 (Θ(nlogn)\Theta(n \log n)).
  • g=5g=5: 0.2+0.7=0.9<10.2 + 0.7 = 0.9 < 1 — 성립. c=20c=20으로 S(n)20nS(n) \le 20n.
  • g=7g=7 이상: 비율 합은 오히려 더 작아져 수축이 좋아지지만, 그룹 정렬 비용이 원소당 늘어난다. 두 힘이 반대라 어느 쪽이 이기는지는 비용 모형이 정한다.
  • g=4g=4가 탈락하는 이유는 짝수라서가 아니라 비율 합이 정확히 14+34=1\frac{1}{4} + \frac{3}{4} = 1이기 때문이다. g=6g=6은 짝수인데도 1112<1\frac{11}{12} < 1로 성립한다.
  • 짝수 gg는 보장이 n/4n/4에 고정되어 언제나 바로 아래 홀수 g1g-1에 진다. 쓸 수 없어서가 아니라 고를 이유가 없다.
  • 결론: 5는 조건을 만족하는 가장 작은 크기이고, 그래서 그룹 정렬이 가장 단순해 관례로 굳었다.
이어지는 글

이 글의 바탕이 되는 전체 분석은 선택 문제 본문에 있다. Quickselect 평균이 O(n)O(n)인 이유는 quickselect 평균 O(n) 유도에서 기댓값으로 따진다.

© 2026 XsQuare01. Powered by GitHub Pages. · 방문자