Sunteți pe pagina 1din 1

Sortare vectori

1. Interschimbari directe (nu este eficienta)


{se face prin comparea unui element (pivot) cu toate cele care urmeaza in vector}

{sortare in ordine crescatoare}


for i:=1 to n-1 do
  for j:=i+1 to n do
    if a[j]<a[i] then {daca un element aflat dupa pivot este mai mic, el este adus in fata}
  begin
aux:=a[j]; {interschimbare prin metoda paharelor}
a[j]:=a[i];
  a[i]:=aux;
end;

-pentru sortare in ordine descrescatoare se schimba doar semnul din conditie, adica     if a[j]>a[i] then

2. Metoda Bubble Sort (metoda eficienta)


{Se face prin compararea elementelor vecine si schimbarea pozitiei lor astfel incat valorile mici sa se
deplaseze spre stanga, iar cele mari spre dreapta }
 
{algoritmul de sortare in ordine crescatoare}
repeat
gasit:=true;  {gasit= true, cand nu mai are loc nici o interschimbare}
      for i:=1 to n-1 do  {parcurgerea}
      begin
           if a[i]>a[i+1] then {conditia de sortare}
           begin
           gasit:=false;      {se realizeaza o interschimbare}
           aux:=a[i+1];
           a[i+1]:=a[i];       {interschimbarea}
            a[i]:=aux;
           end;
      end;
until gasit=true; {daca la o trecere nu se face interschimbare inseamna ca vectorul e sortat si
se paraseste bucla}

-pentru sortare in ordine descrescatoare se schimba doar semnul din conditie, if a[i]<a[i+1] then

S-ar putea să vă placă și