Программа Javascript для поиска максимальных k элементов массива в исходном порядке
Учитывая массив 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 элементов массива в исходном порядке для получения более подробной информации!