Найдите k-й наименьший/самый большой элемент в несортированном массиве, используя кучу

Чтобы найти k-й наименьший или наибольший элемент в несортированном массиве с помощью кучи, вы можете использовать различные методы. Вот несколько часто используемых подходов:

  1. Метод 1. Использование минимальной кучи

    • Создать минимальную кучу из заданного массива.
    • Извлеките минимальный элемент (корень) k раз, чтобы найти k-й наименьший элемент.
  2. Метод 2: использование максимальной кучи

    • Создать максимальную кучу из заданного массива.
    • Извлеките максимальный элемент (корень) k раз, чтобы найти k-й по величине элемент.
  3. Метод 3. Использование алгоритма быстрого выбора

    • Примените алгоритм быстрого выбора, чтобы разделить массив вокруг элемента поворота.
    • Рекурсивно выбирать раздел для поиска на основе позиции k-го элемента.
    • Повторяйте процесс, пока не будет найден k-й элемент.
  4. Метод 4. Использование сортировки

    • Отсортируйте массив по возрастанию или убыванию, используя эффективный алгоритм сортировки (например, быструю сортировку или пирамидальную сортировку).
    • Извлечь k-й наименьший или наибольший элемент из отсортированного массива.
  5. Метод 5: использование алгоритма выбора

    • Примените алгоритм выбора с линейным временем (например, алгоритм медианы медиан), чтобы напрямую найти k-й наименьший или наибольший элемент.