|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2009
Messaggi: 287
|
[C/C++] Calcolo complessità algoritmo
Ciao a tutti, devo calcolare la complessità di tre algoritmi che ci hanno chiesto di implementare però non so bene come calcolarla.
So che un'operazione di assegnamento vale 1 ma già al primo if mi blocco perchè non so che valore dargli. Vi posto una delle funzioni giusto per farvi un'idea: void cambia_gravita(struct paziente A[],int N) { if (N==0) { printf("\nNessun paziente in coda!!\n"); return; } int k,G,matr; G=0; printf("Inserire la matricola del paziente a cui si vuole cambiare codice gravita:"); scanf("%d",&matr); for (k=0;k<N;k++) if (A[k].matricola==matr) { while (G<1 || G>4) { printf("\n Inserire nuovo codice gravita:"); scanf("%d",&G); } A[k].priorita=G*1000+matr; HeapSort(A); printf("Codice gravità cambiato \n"); G=0; return; } printf("Numero di matricola non trovato! \n"); return; } Ho provato a cercare in rete ma non ho trovato nulla di comprensibile. Confido in voi. Ciao e grazie |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2003
Messaggi: 16462
|
Quote:
Per l'if la complessita' e' il massimo tra la complessita' del blocco che viene eseguito se la condizione e' vera e quella del blocco che viene eseguito se la condizione e' falsa. Per i cicli definiti (while, for,...) il costo e' semplicemente la somma sulle diverse iterazioni del costo delle istruzioni a cui il ciclo si riferisce. Ad esempio per i cicli in pseudocodice (un esempio semplice semplice): Codice:
for i = 1 to n do for j= i to m do a[i,j]=0
__________________
MICROSOFT : Violating your privacy is our priority |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Aug 2009
Messaggi: 287
|
Ho fatto come mi hai detto, speriamo bene!
grazie per l'aiuto! ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:33.