Mi è venuto in mente questo algoritmo per la moltiplicazione della matrice. Ho letto da qualche parte che la moltiplicazione della matrice ha una complessità temporale di o (n^2). Ma penso che il mio algoritmo darà o (n^3). Non so come calcolare la complessità temporale degli anelli annidati. Quindi per favore correggimi.algoritmo di moltiplicazione della matrice complessità del tempo
for i=1 to n
for j=1 to n
c[i][j]=0
for k=1 to n
c[i][j] = c[i][j]+a[i][k]*b[k][j]
Questo 'b [i] [k]' sembra sbagliato. Sospetto che tu voglia qualcosa come 'c [i] [j] + a [i] [k] * b [k] [j]' sul RHS dell'ultima riga. –
non è corretto. Qui c [i] [j] è la matrice dei risultati – zedai
Beh, in questo caso non stai sicuramente facendo la moltiplicazione della matrice! Si noti che per un dato 'i', si sta calcolando lo stesso risultato in' c [i] [j] 'per ogni' j', quindi nella matrice di output 'c' tutte le colonne saranno identiche. Devi sostituire 'b [i] [k]' con 'b [k] [j]' nell'ultima riga. –