ИНФОРМАТИКА · 10 КЛАСС
Алгоритмы и массивы · Интерактивный конспект

§ 6. Максимальный и минимальный элементы массива

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

Попробовать на модели ↓
Разбираемся в теме

Основные пункты параграфа

1

Начальное значение и один проход

Для непустого массива экстремум начинают с первого элемента и сравнивают с остальными.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Начальное значение и один проход

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Чтобы найти максимум, задают mx := a[1], затем для i от 2 до n заменяют mx, если a[i] > mx. Для минимума используют знак <. Так начальный кандидат действительно принадлежит массиву. Для [−8,−3,−6] максимум −3, поэтому старт с нуля был бы ошибкой.

После каждого шага кандидат равен экстремуму просмотренной части. В конце просмотрен весь массив — значит, получен общий результат. Для n элементов требуется n−1 сравнение. У одноэлементного массива минимум и максимум равны его единственному значению. У пустого используемого массива экстремум без дополнительных соглашений отсутствует.

Главная мысль: Для непустого массива экстремум начинают с первого элемента и сравнивают с остальными.
2

Индексы и одинаковые значения

Строгое сравнение сохраняет первый экстремум, а нестрогое заменяет его при равенстве и даёт последний.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Индексы и одинаковые значения

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Можно хранить только индекс k кандидата и сравнивать a[i] с a[k]. Тогда индекс k и значение a[k] доступны одновременно. Если при поиске максимума обновлять k только при >, равный элемент не изменит ответ. Условие ≥ будет переносить ответ на последнее равное максимальное значение.

Для [9,4,9,2] первый максимум имеет индекс 1, последний — 3. Аналогично работают < и ≤ для минимума. Если нужны все победители с одинаковым результатом, одного индекса недостаточно: собирают все позиции с экстремальным значением.

{ n >= 1; a[1..n] доступны; k, i: integer. }
k := 1;
for i := 2 to n do
  if a[i] > a[k] then k := i;
Writeln('Максимум: ', a[k], '; первый индекс: ', k);
Главная мысль: Строгое сравнение сохраняет первый экстремум, а нестрогое заменяет его при равенстве и даёт последний.
3

Применение и количество минимумов

Оптимальный результат зависит от смысла данных; количество экстремумов требует отдельного подсчёта.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Применение и количество минимумов

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

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

Количество минимумов можно найти за два прохода: сначала определить минимальное значение, затем посчитать равные ему элементы. В одном проходе при новом меньшем значении заменяют минимум и сбрасывают счётчик на 1, а при равном увеличивают счётчик. Самое длинное слово выбирают сравнением Length(s), а не самих строк: лексикографический порядок и длина различаются.

ДанныеЧто сравниваютВыбор
Время гонкиЧисло секундМинимум
Набранные баллыЧисло балловМаксимум
СловаДлину словаПо условию задачи
Главная мысль: Оптимальный результат зависит от смысла данных; количество экстремумов требует отдельного подсчёта.
4

Столбцы и масштаб

Диаграмма должна показывать величины в общем масштабе и корректно отображать нули и отрицательные числа.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Столбцы и масштаб

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Для положительных данных высоту столбца можно вычислить как H*a[i]/max, где H — доступная высота. Максимальный столбец займёт H, остальные сохранят пропорции. Если все значения равны нулю, делить на max нельзя: показывают нулевые столбцы и пояснение.

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

Главная мысль: Диаграмма должна показывать величины в общем масштабе и корректно отображать нули и отрицательные числа.
Интерактивная практика

Исследуйте и примените

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

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Лаборатория: проверьте свой вариант

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Соберём главное

Шесть выводов

01

Для непустого массива экстремум начинают с первого элемента и сравнивают с остальными.

02

Строгое сравнение сохраняет первый экстремум, а нестрогое заменяет его при равенстве и даёт последний.

03

Оптимальный результат зависит от смысла данных; количество экстремумов требует отдельного подсчёта.

04

Диаграмма должна показывать величины в общем масштабе и корректно отображать нули и отрицательные числа.

05

Для пустого массива сначала обрабатывают отсутствие данных.

06

При поиске по строкам или записям сравнивают нужный признак, например длину или время.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. Как инициализировать максимум непустого массива?

2. Максимум [−8,−3,−6] равен…

3. Сколько сравнений нужно для одного экстремума n элементов?

4. Что возвращает поиск экстремума пустого набора без соглашений?

5. Что сохраняет условие > при поиске индекса максимума?

6. Что даёт условие ≥ при повторном максимуме?

7. Что ищут среди времён прохождения трассы для победителя?

8. Что делать со счётчиком при новом меньшем минимуме?

9. Как сравнивать слова для поиска самого длинного?

10. Что нужно для диаграммы отрицательных значений?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…