Меню

Вывести два максимума массива

Найти два максимальных элемента массива

Задача

В массиве чисел найти два максимальных элемента.

Данная задача требует пояснений и конкретизации:

  • должны ли быть равны между собой эти элементы;
  • или они могут быть разными, но больше, чем все остальные элементы. Например, в массиве [4, 7, 2, 6, 9] два максимальных элемента — это числа 9 и 7.

В данном случае будем считать, что надо найти два наибольших элемента одномерного массива. При этом они могут быть как равны между собой, так и различаться.

Решение

Задачу можно решить двумя способами. Наиболее простой для понимания — это использование двух переборов массива. В первом ищется первый максимум. Во втором — второй, при этом первый максимальный элемент исключается с помощью условного оператора if. Пример кода программы:

Здесь переменные max1 и max2 хранят не значения элементов, а их индексы (этого достаточно, т. к. по индексу всегда можно получить значение).

Обратите внимание на конструкцию if max1 = 1 then max2 : = 2 else max2 : = 1 ; . Она необходима по следующей причине. Мы не знаем, какое начальное значение следует присвоить переменной max2. Ведь если первый наибольший элемент будет первым, и мы присвоим max2 значение 1, то никогда не найдем второй наибольший.

В цикле, определяющем второй максимум, сначала проверяется, не совпадает ли номер текущего элемента с уже учтенным в max1. Только после этого происходит сравнение значения текущего элемента со значением элемента с индексом max2.

Второй вариант решения задачи — когда оба максимума ищутся в одном цикле:

Сначала предполагается, что первые два элемента массива и являются наибольшими. Какой из них первый максимум, а который второй, определяется с помощью конструкции if-else вне цикла. Перебор массива начинается с третьего элемента. Если очередной элемент массива больше первого максимального, то его индекс записывается в первую переменную. (При этом может оказаться, что ранее хранившийся в max1 индекс указывал на второй максимум. Если это так, то он будет записан в max2. Для этого используется переменная buff и вложенное if.) Иначе осуществляется проверка переменной max2.

Источник

Найти в массиве 2 максимальных элемента

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Читайте также:  Стирать тюль от жира

Найти в массиве два максимальных элемента и их номера
Задание: Заполнить массив из 10 элементов случайными числами в интервале и найти в нем два.

Найти 3 максимальных элемента массива и их индексы
Ребята, помогите пожалуйста. Срочно нужно. Есть массив заполненный случайными числами. Найти 3.

В массиве найти пять максимальных элементов
Дан массив А на Н элементов (Н-константа). В массиве найти пять максимальных элементов. Написать.

Найти в массиве 2 максимальных элемента и их номера
Доброго времени суток) Помогите пожалуйста! Заполнить массив из 10 элементов случайными числами.

AlohaS, вот можно как-то так:

ThePlague, У вашего решения есть один маленький недостаток. Если 2 (или больше) максимальных элемента равны, max2 будет неверным.

Добавлено через 58 секунд
Ну и, конечно, жалко делать 2 прохода.

Вот поиск двух максимумов за один проход:

Комментарий модератора
С++ в другой ветке форума, будьте внимательнее!

Поясните,пож. что такое flg=0;

Добавлено через 2 минуты
Я С изучаю,С++ еще не знаю

Решение

Найти два максимальных элемента в одномерном массиве
Если не трудно решите задачку, пожалуйста. Заполнить массив из 10 элементов случайными числами в.

[Кумир] Найти в массиве 2 максимальных элемента и их индексы
Ввести с клавиатуры массив из 5 элементов, найти в нем 2 максимальных элемента и их номера.

Найти три максимальных элемента и их сумму в массиве
Всем привет. Помогите с задачей, если не затруднит. Звучит она так: «Дан одномерный массив.

В массиве найти первые три максимальных элемента,без сортировки
Алгоритм. 1.Размер массива равен 0. 2.Пока не найдены все max: 0)flag=false; a) взять.

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Есть задача: В одномерном массиве найти два максимальных элемента и удалить все элементы между.

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Дана задача : В одномерном массиве найти два максимальных элемента и удалить все элементы между.

Источник

Найти два максимальных значения в массиве

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Дана задача : В одномерном массиве найти два максимальных элемента и удалить все элементы между.

Найти два максимальных элемента в одномерном массиве
Если не трудно решите задачку, пожалуйста. Заполнить массив из 10 элементов случайными числами в.

Найти в массиве два максимальных элемента и их номера
Задание: Заполнить массив из 10 элементов случайными числами в интервале и найти в нем два.

Добавлено через 3 минуты
Нет, плохо, не сработает при двух максимальных arr[0] arr[1]

Добавлено через 1 час 44 минуты
Хотя.

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Есть задача: В одномерном массиве найти два максимальных элемента и удалить все элементы между.

За один проход цикла найти два максимальных значения среди всех данных и удалить их
Задача: За один проход цикла найти два максимальных значения среди всех данных и удалить их. Затем.

Первые два максимальных в массиве
Вроде такая простая задача, а я не могу сообразить. Надо найти 2 наибольших элемента в произвольном.

Найти в массиве значения, повторяющиеся два и более раз
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает.

Источник

Как найти два максимальных значений в массиве?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Найти два максимальных значения в массиве
Собственно, не получается реализовать нахождение второго максимального значения: // Найдти 2.

Найти два максимальных элемента в одномерном массиве
Если не трудно решите задачку, пожалуйста. Заполнить массив из 10 элементов случайными числами в.

Найти в массиве два максимальных элемента и их номера
Задание: Заполнить массив из 10 элементов случайными числами в интервале и найти в нем два.

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Дана задача : В одномерном массиве найти два максимальных элемента и удалить все элементы между.

Решение

Решение

Решение

Вот же выше через цикл вариант!
Или вам обязательно через for и вариант с foreach не подходит?

Добавлено через 1 минуту

Элд Хасп, обязательно через цикл for.

Добавлено через 1 минуту
Элд Хасп, спасибо большое Вам.

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Есть задача: В одномерном массиве найти два максимальных элемента и удалить все элементы между.

Приравнять 0 два максимальных и два минимальных числа в массиве
Дорогие друзья, помогите пожалуйста, никак не могу решить данную задачу. Необходимо реализовать.

Первые два максимальных в массиве
Вроде такая простая задача, а я не могу сообразить. Надо найти 2 наибольших элемента в произвольном.

Как найти несколько одинаковых максимальных элементов в массиве?
подскажите как найти несколько одинаковых максимальных элементов в массиве?

Последовательность целых чисел. Найти два минимальных / два максимальных элемента
Дана последовательность целых чисел a1,a2. an, где n=> 3. Найти: а) два максимальных элемента.

Одномерный массив. Найти в нем два максимальных и два минимальных элемента.
решите пожалуйста задачу)))))): дан одномерный массив. надо найти в этом массиве два.

Источник

Найти несколько максимальных элементов в массиве

Нужно из заданного массива найти значения четырех максимальных элементов, т.е. например из массива <1,2,3,4,5,6>нужно вывести <3,4,5,6>на языке Java.

Как один элемент вывести я знаю, а вот как остальные вывести?

5 ответов 5

Как предложил @Grundy: отсортировать и вывести последние 4 элемента

Есть вариант предложенный на английской версии, использовать алгоритм выбора для нахождения k-го по величине элемента в массиве, а затем вывести все элементы, которые больше найденного

Использовать список: вставляем n-элементов, далее, если следующий элемент больше минимального, вставляем новый и удаляем минимальный

Можно использовать порядковую статистику.

Рекурсивно делим подмассив на две части. Берем из подмассива некоторый опорный элемент (pivot), и делим подмассив на то, что больше опорного элемента, и меньше. Если тех, которые больше оказалось больше чем нужно, рекурсивно обрабатываем правую часть, если меньше — левую, если сколько нужно — ответ найден.

Алгоритм деления (partition) тот же самый, что в быстрой сортировке (quicksort) используется, разница в том, что делится только одна ветвь.

Лучшее и среднее время — O(n), худшее — O(n^2),

Методы лечения те же, что и у quicksort — правильный выбор pivot. Можно выбирать случайно.

Смотрите так же: k-я порядковая статистика, медиана.

Источник