Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Insertion Sort

Precedente
SUPERIORE
Successiva

L'elemento i-esimo viene inserito al posto giusto nel sottovettore (1, ..., i-1) facendogli percorrere il tratto i-1, i-2, ... con una sequenza di confronti e assegnazioni.

Procedure INSERTSORT(var V: Vettore; N: Integer);
var
   i, j: Integer;
   X: Elemento;
begin
   for i:=2 to N do
      begin
         X:=V[i];
         j:=i-1;
         while(j > 0) And (V[j] > X) do
            begin
               V[j+1]:=V[j];
               j:=j-1;
            end;
         V[j+1]:=X;
      end;
end;

Esempio

V={2, 3, 1, 0}, i=2, j=1, X=3 --> V={2, 3, 1, 0}
V={2, 3, 1, 0}, i=3, j=2, X=1 --> V={2, 3, 3, 0}
                              --> V={2, 2, 3, 0}
                              --> V={1, 2, 3, 0}
V={1, 2, 3, 0}, i=4, j=3, X=0 --> V={1, 2, 3, 3}
                              --> V={1, 2, 2, 3}
                              --> V={1, 1, 2, 3}
                              --> V={0, 1, 2, 3}

Insertion Sort - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva