엄범

max, min 동시에 찾기 / 두 번째로 큰 값 찾기

min, max 모두 찾을 때 조금 더 효율적인 방법 배열에서 최댓값과 최솟값을 모두 찾는 단순하고 일반적인 방법은 최대키, 최소키를 각각 찾는 방법이다. 이런 방식은 최대키를 찾는데 \(n-1\)번 비교, 최소키를 찾는 문제도 이와 같으므로 총 \(2n-2\)번 비교하게 된다. 다음과 같은 방법을 사용하면 최댓값과 최솟값을 모두 찾는데 \(3\lf...

5개의 원소를 7번 비교로 정렬하기 / 6번 비교로 중간값 찾기 (+ 상대자 논증)

5개의 원소를 7번 비교로 정렬하기 정렬의 lower bound는 \(\lceil\lg{n!}\rceil\)이므로, 5개의 원소를 정렬하려면 최악의 경우 최소 7번은 비교해야 한다. (quick, merge, heap 모두 최악의 경우 8번 비교하게 된다.) 최악의 경우에도 7번만 비교하는 알고리즘의 핵심은 이미 정렬된 부분에 대해서 binary s...