Книга: Одномерные массивы

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

Пусть требуется найти минимальный элемент (min ) и его индекс (n_min ) во всем массиве (in=0 и ik=n ) или какой то его части (с in – го по ik ый), в этом случаи алгоритм решения задачи можно записать так:

1. в качестве начального значения переменной min выберем любой из рассматриваемых элементов (обычно выбирают первый). Тогда min=ain , n_min= in;

2. затем в цикле по параметру i начиная со следующего элемента (i=in+1, …, ik ) будем сравнивать элементы массива ai текущим минимальным min . Если окажется, что текущий (i – ый ) элемент массива меньше минимального (ai < min ), то переменная min принимает значение ai , а n_min – на i : min =ai , n_min = i .

Графическая схема алгоритма и фрагмент программы поиска минимального элемента в массиве приведены на рисунке 2.16.

min=a[in];

n_min=in;

for(i=in+1; i<ik; i++)

if(a[i]<min)

{

min=a[i];

n_min=i;

}

Рисунок 2.16. Графический алгоритм и фрагмент программы поиска минимального элемента в массиве


Заметим, что при наличии в массиве нескольких минимальных элементов, найден будет первый из них (самый левый минимальный элемент) при просмотре массива слева направо. Если в неравенстве ai < min знак > поменять на знак , то будет найден последний из них (самый правый минимальный элемент).

Для поиска максимального элемента max и его индекса n_max используется аналогичный алгоритм, в котором сначала надо принять max =ain , n_ max = in , вместо неравенства ai < min используется неравенство ai > max . В случаи выполнения условия ai > max записать в max =ai и в n_ max = i .

Для поиска в массиве экстремума можно не использовать вспомогательную переменную min (max ). В этом случаи минимальный элемент массива определяется только по его индексу n_min (n_max ) (рисунок 2.17).

  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • К-во Просмотров: 1175
    Бесплатно скачать Книга: Одномерные массивы