У меня вопрос о поиске k-го по величине элемента с помощью min-heap. Алгоритм следующий:
Берем первые k элементов и строим minheap
Пусть Sk - наименьший элемент в S.
Посмотрите на новый элемент из оставшихся n-k элементов.
Если новый элемент больше Sk, он заменяет его в S и меняет порядок кучи.
Тогда у S будет новый наименьший элемент.
Посмотрев на все остальные элементы, Sk - ответ
Я не понимаю этого алгоритма. Например, пусть числа будут 1, 2, 3, 4. Мы хотим найти 4-й по величине, то есть 4. Но когда мы используем алгоритм, мы берем первые 4 элемента, строим мини-кучу, и Sk равно 1.
Что я делаю неправильно? Буду признателен, если кто-нибудь может помочь. Спасибо