L'algoritmo inizia assumendo che il massimo è il primo elemento del vettore; confronta il valore massimo con il secondo elemento. Se quest' ultimo è maggiore del massimo aggiorna il valore del massimo con il secondo valore. Esamina così tutti gli altri elementi del vettore.
pseudocodice:
"il massimo è il primo elemento ;
per ogni valore di i da 1 a N-1:se x[i] è maggiore del massimo trovato finora
allora x[i] è il nuovo massimo."
Codice:
int findMax(int v[], int n) { int i,max;
max = v[0];
for (i = 1; i < n; i++)
if (v[i] > max) max = v[i];
return max;
}
Codice con restituzione dell' indice del massimo:int findMax(int v[], int n) { int i,max=0;for (i = 1; i < n; i++)
if (v[i] > v[max]) max = i;return max;}
La complessità computazionale asintotica è O(n).
Caso peggiore: array ordinato in senso crescente - T. esec. prop. a n
Caso migliore: array già ordinato in senso decrescente - T. esec. prop. a n
Caso peggiore: array ordinato in senso crescente - T. esec. prop. a n
Caso migliore: array già ordinato in senso decrescente - T. esec. prop. a n