INFOPedia : PRGIngenuo

HomePage :: Categorie :: Indice :: Ultime modifiche :: Ultimi commenti :: Login/Registrazione

ORDINAMENTO INGENUO (Insertion Sort)



ALGORITMO:

for j:=1 to (n-1) do
  for i:=(j+1) to n do
    if a[j] > a[i] then begin
      aux:=a[j];
      a[j]:=a[i];
      a[i]:=aux;
      end;   


SPIEGAZIONE ALGORTIMO

Nella prima esecuzione del ciclo interno, per j=1, si confronta il primo elemento con tutti gli altri, scambiando il valore dei due elementi se a[1]>a[i]. In questo modo, al termine del ciclo a[1] conterrà l’elemento più piccolo. Alla seconda iterazione del ciclo esterno si ripete la stessa procedura: alla fine a[2] conterrà il secondo valore in ordine di grandezza. Quando termina tutto il ciclo esterno il vettore risulterà ordinato.

COMPLESSITA’
Osserviamo che per j=1 l’istruzione del ciclo interno, il confronto fra a[j] e a[i], viene eseguita (n-1) volte, (n-2) volte per j=2, (n-3) volte per j=3 e così via fino a j=(n-1).
Il numero di confronti effettuati è quindi pari a (n-1)+(n-2)+(n-3)+…+2+1 = \frac{n(n-1)}{2} , che si rifà alla formula di Gauss: \sum_{k=1}^n k = \frac{n(n-1)}{2}

Questo algoritmo ha quindi una complessità O(n^2).



Torna a Programmazione e Lab.

Non ci sono commenti in questa pagina. [Scrivi commento]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
La pagina è stata generata in 0.2453 secondi