guida

Guida Pascal - 35. Ordinamento degli elementi di un array

35.Ordinamento degli elementi di un array

Ordinare gli elementi di un array vuol dire metterli in ordine alfabetico se sono stringhe o in ordine di grandezza se sono numeri.
Esistono molti algoritmi di ordinamento. Ora analizzeremo uno tra i più semplici: il metodo di sostituzione.
Questo algoritmo è molto efficace con un numero di elementi non eccessivo.
Il metodo di ordinamento presentato consiste nel confronto di ciascun elemento con il tutti gli altri elementi che sono disposti nelle posizioni successive a quella esaminata, partendo da primo elemento fino ad arrivare all'ultimo.
Tutte le volte che tra gli elementi successivi si incontra un elemento più piccolo, si procede allo scambio tra i due in modo che, alla fine del confronto di ciascun elemento con i successivi si ottenga nella posizione in esame il valore minimo rispetto ai successivi.
Alla fine gli elementi verranno disposti dal più piccolo al più grande, in modo crescente.
Nell'esempio che vedremo l'ordinamento è crescente, se si volesse ottenere un ordinamento decrescente basta cambiare il verso del confronto.

program OrdinamentoElementiArray;
uses crt;
var temp,z,i,j:integer;
a:array[1..5] of integer;
begin
  clrscr;
  writeln('Ordinamento degli elementi di un array');
  for z := 1 to 5 do
    begin
      writeln('Inserisci il componente ', z, ' dell''array');
      write('componente numero ',z,' = ');
      readln(a[z]);
    end;
  writeln;
  for i := 1 to 5 do
    for J := i+1 to 5 do
      if a[i] > a[j] then
        begin
          temp:=a[i];
          a[i]:=a[j];
          a[j]:=temp;
        end;
  for z := 1 to 5 do
    writeln('componente numero ' ,z,' = ',a[z]);
  readln;
end.