Nickolay.info. Алгоритмы. Нахождение максимального (минимального) значения в массиве без использования дополнительной переменной

Основная реализация очень проста:

imax:=1;
for i:=2 to n do if a[i]>a[imax] then imax:=i;

Соответственно, для поиска минимума знак > меняется на <.

Идея в том, что запоминается только номер максимального элемента imax, а для доступа к нему вполне годится a[imax] без использования дополнительной переменной для хранения значения элемента. Разумеется, в задаче на последовательность, элементы которой не хранятся в памяти одновременно и их нужно вычислять повторно, номер бы не прошёл.

Вся программа:

uses crt;
const n=10;
var i,imax:integer;
 a:array [1..n] of integer;
begin
 clrscr; randomize;
 for i:=1 to n do begin
  a[i]:=random(100);
  write (a[i],' ');
 end;

 imax:=1;
 for i:=2 to n do if a[i]>a[imax] then imax:=i;

 writeln;
 write ('Max=',a[imax]);
 reset (input); readln;
end.

Рейтинг@Mail.ru

вверх гостевая; E-mail