Программа Javascript для поиска максимальных k элементов массива в исходном порядке

Опубликовано: 2 Сентября, 2022

Учитывая массив arr[] и целое число k, нам нужно вывести k максимальных элементов данного массива. Элементы должны быть напечатаны в порядке ввода.
Примечание: k всегда меньше или равно n.

Примеры:

Input : arr[] = {10 50 30 60 15}
        k = 2
Output : 50 60
The top 2 elements are printed
as per their appearance in original
array.

Input : arr[] = {50 8 45 12 25 40 84}
            k = 3
Output : 50 45 84

Способ 1: Мы ищем максимальный элемент k раз в заданном массиве. Каждый раз, когда мы находим один максимальный элемент, мы печатаем его и заменяем минус бесконечным (Number.MIN_SAFE_INTEGER в Javascript) в массиве. Кроме того, положение всех k максимальных элементов помечается с помощью массива, так что с помощью этого массива мы можем напечатать элементы в порядке, указанном в исходном массиве. Временная сложность этого метода составляет O(n*k).

Временная сложность: O(n*k)
Вспомогательное пространство: O(n)

Метод 2. В этом методе мы сохраняем исходный массив в новом массиве и сортируем новый массив в порядке убывания. После сортировки мы перебираем исходный массив от 0 до n и печатаем все те элементы, которые появляются в первых k элементах нового массива. Для поиска мы можем использовать двоичный поиск.

Выход:

50 45 84 

Сложность времени: O(n Log n) для сортировки.
Вспомогательное пространство: O(n)

Пожалуйста, обратитесь к полной статье о поиске максимальных k элементов массива в исходном порядке для получения более подробной информации!