Introduzione
Quando si parla di algoritmo si fa riferimento ad un insieme di calcoli semplici, che porta come risultato quello di risolvere quello che può essere un problema o un'incognita. Gli algoritmi, sono la base dell'informatica odierna ed è pressoché utilizzato in tutti i linguaggi base. Quindi, oggi in questa guida, composta da pochissimi ma allo stesso tempo semplicissimi passaggi, vi spiegheremo passo dopo passo, in maniera molto dettagliata e scrupolosa, come si possono calcolare gli algoritmi. L'operazione non è per nulla complessa: sarà sufficiente studiare per riuscire a padroneggiare il campo alla perfezione. Vediamo quindi come procedere.
Istruzioni Dominanti
Prima di addentrarci nel nostro compito, iniziamo a familiarizzare con alcuni termini importanti. Quando andiamo a scrivere un algoritmo, dal più semplice al più complesso, avremo delle istruzioni definite Istruzioni Dominanti. Queste istruzioni, a differenza di altre, vengono eseguite un certo numero n di volte e quindi, saranno la causa di un possibile ritardo del nostro algoritmo. In realtà, la definizione di questo termine, è ben più complessa ma in questo contesto possiamo semplificarla come dunque detto.
Algoritmo
Andiamo ad analizzare l'algoritmo di ricerca sequenziale, il più semplice algoritmo della categoria, in modo da capire pienamente il concetto. Partiamo dall'implementazione del metodo sortSeq() che riceve un vettore di Integer e l'elemento da ricercare. Avremo :
public boolean sortSeq (Integer[] v, int elem){
for (int i=0; i if (v[i]. IntValue () == elem)
return true;
return false;//non trovato!!
}//sortSeq.
Istruzione nel corpo del metodo
Andiamo ad individuare le istruzioni o l'istruzione dominante all'interno del corpo del metodo. L'istruzione iterativa for () e l'istruzione return false, sono le due istruzioni che vengono eseguite prima che sortSeq () termini correttamente. Da qui, facciamo le nostre considerazioni :
return false; viene eseguita una volta, se non ho trovato l'elemento nel vettore o non vorrà eseguita se elem è presente. Possiamo dire, quindi, che tale istruzione in termini temporali è costante e la indico con T (1). L'istruzione for (), invece, viene eseguita in modo ripetitivo ed in numero pari, al numero di elementi del vettore. Possiamo ancora dire, ad ogni iterazione, almeno una volta avviene il confronto e quindi l'istruzione if (), viene eseguita una volta per ogni passo del ciclo for (). Tale istruzione, posso trattarla come una costante e quindi T (1).