수정 된 버전의 quicksort를 사용하여 배열에서 k 번째로 작은 항목을 찾으려면 왜 예상 진 행 시간 O (n) (Programming Pearls book에 명시된 바와 같이)입니까?quicksort => 예상 실행 시간을 사용하여 배열에서 k 번째로 작은 항목을 찾으십니까?
1) Runs quick sort on the array
2) If k is > the correct location of pivot, then run quicksort on the 2nd half.
Otherwise run it on the first half.
나는 인상이 걸릴 것이라고 O (N * logn) 작업에서였다
내가 사용하는 알고리즘은 다음을 수행합니다.
* quickselect *는 알고리즘의 이름입니다. [여기에 또 다른 질문이 있습니다] (http://stackoverflow.com/questions/10846482/quickselect-algorithm-understanding) 및 [wikipedia의 적용 범위] (https://en.wikipedia.org/wiki/Selection_algorithm#Partition-based_general_selection_algorithm) O (n) 평균이지만 O (n^2) 최악의 경우라고합니다. (나는 책이 실제로 quickselect를 가지고 있다고 가정하고 있는데, 그 이유는 quicksort를 기반으로 한 선택 알고리즘이기 때문입니다. 나는 책을 찾을 필요가 없습니다.) –