Поиска максимального (минимального) элемента в массиве и его номера

Дан массив X, состоящий из n элементов. Найти максимальный (минимальный) элемент массива и номер, под которым он хранится в массиве.

Алгоритм решения задачи следующий. Пусть в переменной с именем Max (Min) хранится значение максимального (минимального) элемента массива, а в переменной с именем Nmax (Nmin)– его номер. Предположим, что первый элемент массива является максимальным (минимальным), и запишем его в переменную Max (Min),а в Nmax (Nmin) – занесем его номер, то есть – «1». Затем все элементы, начиная со второго, сравниваем в цикле с максимальным (минимальным) значением. Если текущий элемент массива оказывается больше максимального (минимального), то записываем его в переменную Max (Min),а в переменную Nmax (Nmin) – текущее значение индекса i.

Процесс определения максимального элемента в массиве приведен в таблице 1 и изображен при помощи блок-схемы на рис. 7.

Алгоритм поиска минимального элемента в массиве будет отличаться от приведенного выше лишь тем, что в условном блоке знак поменяется с > на <.

Таблица 1. Определение максимального элемента и его номера в массиве

Номера элементов              
Исходный массив              
Значение переменной Max              
Значение переменной Nmax              

Рис. 7. Поиск максимального элемента в массиве и его номера.

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

Если требуется поиск максимума (минимума) в сочетании с условием отбора, то величина первого элемента, удовлетворяющего условию, не известна. В связи с этим переменной, в которой будет "накапливаться" минимум, присваивают значение +¥, под которым понимают величину, заведомо большую, чем любой из элементов массива, удовлетворяющих заданному условию. На блок-схеме разрешается писать этот знак (или -¥ для максимума), но в программе вместо +¥ или -¥ надо указывать конкретное число, которое часто можно определить из формулировки задачи. Например, если дан массив зарплат сотрудников некоего учреждения и надо найти наибольшую зарплату, ясно, что за -¥ можно взять, скажем, -1.

Если в задаче на минимум с условием надо еще и определить, где этот минимум находится, то придется завести еще одну переменную для номера минимального элемента. В качестве ее начального значения надо указать величину, которая меньше начального индекса массива (если в массиве элементы нумеруются с - то начальным значением номера минимального элемента может быть ноль).

Фрагмент программы поиска минимального элемента массива без условия (1) и с условием (2).

Фрагмент 1 Фрагмент 2

max: = x[1]; max: = -32765;

nmax = 1; nmax = 0;

for i:=2 to n do for i:=1 to n do

if max <= x[i] if max <= x[i] and x[i] = «хороший»

then begin then begin

max: = x[i]; max: = x[i];

nmax = i; nmax = i;

end; end;

«Хороший» означает, что данный элемент удовлетворяет условию задачи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: