Descreva um algoritmo que considere como entrada uma lista de
números inteiros e produza como saída a maior diferença obtida pela subtração de um número inteiro da lista e seu subseqüente.
Passo 1
O enunciado pede, dado um vetor
de
números inteiros, encontrar
O conteúdo aqui é varrer o vetor uma única vez e manter um registro da maior diferença vista até o momento.
Passo 2
Se
, não existem pares consecutivos e podemos, por exemplo, retornar
(ou sinalizar erro), pois não há diferença a calcular.
Passo 3
Inicializamos a variável que guarda a maior diferença usando o primeiro par:
Passo 4
Para cada
de
até
, fazemos:
e se
, atualizamos
No fim do laço,
contém a maior diferença desejada.
Resposta
Entrada: lista A de n inteiros
Saída: maior diferença A[i] - A[i\(+1\)] para i \(=1\),…,n−1
\(max_diff\) := A[1] - A[2]
para i de 2 até n-1 faça
diff := A[i] - A[i\(+1\)]
se diff > \(max_diff\) então
\(max_diff\) := diff
fim se
fim para
retorna \(max_diff\)