Добрый день, нужно найти k-тый максимальный элемент в массиве. Я

использовал поиск k-той порядковой статистики, но проблема в том, что в массиве могут быть повторяющиеся элементы и тогда ответ либо неправильный, либо попадаю в бесконечную рекурсию. Как можно изменить алгоритм? Или лучше в данном случае использовать двоичную кучу?

11 ответов

11 просмотров

за линию найти?

Ярослав- Автор вопроса
Ярослав
Желательно

тогда ищите баг в реализации своего алгоритма либо используйте nth_element

Ярослав- Автор вопроса

Ну то есть такой алгоритм должен находить именно k-тый элемент?

Ярослав
Ну то есть такой алгоритм должен находить именно k...

про какой вы алгоритм говорите? почитайте про nth_element

Ярослав- Автор вопроса
Albert
про какой вы алгоритм говорите? почитайте про nth_...

Я говорил про поиск k-той статистики, но хорошо, почитаю о nth_element, спасибо за помощь

Ярослав
Я говорил про поиск k-той статистики, но хорошо, п...

nth_element решает задачу поиска k-ой порядковой статистики

Ярослав- Автор вопроса
Albert
nth_element решает задачу поиска k-ой порядковой с...

Увидел, хорошо, что готовый алгоритм сделали, сейчас вот смотрю реализацию, чтобы понять, где я накосячил

Сортируешь и ищешь по индексу -k

Who
Сортируешь и ищешь по индексу -k

так за линию же... а сортировка n logn

Похожие вопросы

Обсуждают сегодня

Всем привет Есть достаточно базовая задача: Дан неориентированный граф. Требуется определить, есть ли в нем цикл, и, если есть, вывести его. Входные данные подаются в виде ма...
Αλeksandr
10
Привет всем. Подскажите, как можно данную задачу более менее эффективно решить? В столовой одного известного Завода вот-вот начнётся обед. На обеде есть три гарнира — макарош...
Vitaliy
6
Всем привет Пытаюсь решить следующую задачу: https://informatics.msk.ru/mod/statements/view.php?id=6992&chapterid=101#1 Строка S была записана много раз подряд, после чего из ...
Αλeksandr
10
всем привет. У меня есть неупорядоченный массив точек(в моем случае в трёхмерном пространстве). Есть критерий связанности точек: если евклидово расстояние между ними меньше за...
Павлик Ливаткин
31
Доброе утро. Такой вопрос: есть ли какие-то практически полезные меры вычислительной мощности (в смысле computational complexity) для реальных машин, с ограниченными ресурсам...
Yaroslav Schekin
15
Друзья, практический вопрос надо счиать скользящую медиану в последовательности по заданному окну (длины N) тупой вариант - взять значения в окне, отсортировать, взять элеме...
Стас Выщепан
17
Здравствуйте. Есть задача нужно найти наименшое число P где фактриал P делиться на 10^N. Ограничения 10^9. Знаю что нужно найти такой P в конце как минимум N нулей. Решение с ...
. Azmiddin
20
#pragma once #include <iostream> #include <vector> template <typename T, typename Comp = std::less<T>> class Heap { public: Heap() = default; Heap(const std::vector<T>&...
Степан
1
Должна-ли работать такая стратегия: Мы каждую секунду бросаем монетку - орел или решка. Если орел - покупаем акцию на все деньги, если у нас есть деньги, или продаем все акци...
George Polevoy
13
Как можно сжимать временные ряды в памяти? У меня есть исторические стоимости ценных бумаг. Данные для каждой минуты в истории OHLC (Open, High, Low, Close). Соответственно, O...
George Polevoy
10
Карта сайта