어레이에 중간 요소를 찾는 보통 간단한 알고리즘 의 숫자이다 :
- 샘플 의 요소 에 여분으로
- 정렬 와 순위 찾을 수 요소 과 의
- 그 확인 과 중앙값의 양측에있는 대부분에 있다는 것을 내의 요소 사이 및 일부 적절한 상수에 대한 . 그렇지 않으면 실패합니다.
- 그렇지 않으면 과 사이 에 의 요소를 정렬하여 중앙값을 찾으십시오.
이것이 선형 시간으로 실행되고 높은 확률로 성공한다는 것을 알기는 어렵지 않습니다. (모든 나쁜 사건은 이항식의 기대치에서 크게 벗어난 것입니다.)
빠른 정렬 본 학생들에게 가르 칠 수있는 더 자연 같은 문제에 대한 또 다른 알고리즘은 하나가 여기에 설명입니다 : 무작위 선택
이 호출에 선형 예상 실행 시간이 있음을 쉽게 알 수 있습니다. "라운드"는 1 / 4-3 / 4 스플릿을 제공 할 때 끝나는 재귀 호출 시퀀스라고 가정합니다. 라운드는 최대 2입니다. (라운드의 첫 번째 드로우에서 좋은 스플릿을 얻을 확률은 1/2이고, 알고리즘이 설명 된대로 실제로 증가한 후에 라운드 길이는 기하 임의 변수에 의해 지배됩니다.)
이제 질문 :
무작위 선택이 선형 시간으로 높은 확률로 실행됨을 보여줄 수 있습니까?
우리는 라운드를 가지며, 각 라운드는 길이가 적어도 가 최대 인 확률을 가지 므로 합집합은 실행 시간이 임을 나타냅니다. 확률 .
이것은 만족스럽지 않지만 실제로는 진실입니까?