Le operazioni con le matrici in linguaggio C

La matrici come struttura bidimensionale, contengono al loro interno ddei dati della stessa tipologia come ad esempio numeri. E’ importante saper svolgere delle operaizoni sulle matrici quali la ricerca del massimo e minimo valore, la somma di tutti gli elementi della matrice, la media degli elementi.
Gli algoritmi risolutivi sono tutti basati sull’ipotesi che la matrice non sia ordinata ne per roga e me per colonna quindi la complessità computazionale nel caso peggiore per la ricerca del massimo e del minimo è pari a O(N*M) ove il numero di righe è N e il numero di colonne è M.
Non sempre ha senso ordinare una matrice in quanto la collocazione spaziale degli elementi fornisce un ulteriore informazione.
Nel linguaggio naturale o in pseudo-codice gli algoritmo sono:

Inizio Minimo(matrice, _n, _m)
 min <-- m[0][0] // per assurdo ipotizziamo che l'elemento minore sia il primo
 per (i=o;i<_n;i++)
 per (j=0;j<_m;j++)
  se (min > m[i][j])
   min <-- m[i][j]
return min
Fine 

Questo semplice sotto algoritmo permette di calcolare il minimo valore degli elementi di una matrice, per il massimo analogamente l’algoritmo è identico basta cambiare il verso delle condizione:

Inizio Massimo(matrice, _n, _m)
 max <-- m[0][0] // per assurdo ipotizziamo che l'elemento maggiore sia il primo
 per (i=o;i<_n;i++)
 per (j=0;j<_m;j++)
  se (max < m[i][j])
   min <-- m[i][j]
return max
Fine 

Per la somma è ancora più semplice l’algoritmo:

Inizio Somma(matrice, _n, _m)
 s <-- 0 
 per (i=o;i<_n;i++)
 per (j=0;j<_m;j++)
  s <-- s+m[i][j]
return max
Fine 

Il codice C del programma completo è reperibile all’indirizzo GitHub

Per concludere il video molto breve che ti spiega in 5 minuti queste operazioni: