Помощь с Windows Forms C#. Найти максимальное значение и значение, второе по величине после максимума

Не могу понять как найти в одномерном массиве второе по величине после максимума значение
Помогите понять.

Циклом foreach

Простейшее решение - отсортировать.

Более быстрое - на первом проходе массива найти минимум и максимум, на втором - максимальное значение, которое меньше найденного максимума (начав со значения найденного минимума).

Можно и за один проход: заводим 2 элемента: первое и второе максимальное. И очередное значение массива сравниваем с этими элементами - подставляя значение из массива на нужное место - если оно превосходит первый или второй максимум (если текущее значение превосходит первый максимум, то значение первого максимума записывается во второй, а текущее значение - в первый; если текущее значение меньше первого, но больше второго максимума - заменяем им второй максимум).

Добавить комментарий