Sortare rapida(quicksort) Un tablou V se completeaza cu n elemente numere reale .Sa se ordoneze crescator folosind metoda de sortare rapida . Solutia problemei se bazeaza pe urmatoarele etape implementate in programul principal: 4se apeleaza procedura “quick” cu limita inferioara li=1 si limita superioara ls=n; 4functia”poz” realizeaza mutarea elementului v[i] exact pe pozitia ce o va ocupa acesta in vectorul final ordonat ; functia”poz” intoarce (in k ) pozitia ocupata de acest element; 4in acest fel ,vectorul V se imparte in doua parti : li …k-1 si k+1…ls; 4pentru fiecare din aceste parti se reapeleaza procedura“quick”,cu limitele modificate corespunzator ; 4in acest fel ,primul element din fiecare parte va fi pozitionat exact pe pozitia finala ce o va ocupa in vectorul final ordonat (functia“poz”); 4fiecare din cele doua parti va fi ,astfel ,inpartita in alte doua parti ;procesul continua pana cand limitele partilor ajung sa se suprapuna ,ceea ce indica ca toate elementele vectorului au fost mutate exact pe pozitiile ce le vor ocupa in vectorul final ;deci vectorul este ordonat ; 4in acest moment se produc intoarcerile din apelurile recursive si programul isi termina executia . program quicksort; type vector= array [1..50] of real ; var v:vector; i,n,k:integer; function poz(li,ls:integer):integer; var i,j,modi,modj,m:integer; man:real; begin i:=li; j:=ls; modi:=0; modj:=-1; while i<j do begin if v[i]>v[j] then begin man:=v[i]; v[i]:=v[j]; v[j]:=man; m:=modi ; modi:=-modj; modj:=-m; end; i:=i+modi; j:=j+modj; end; poz:=i; end; procedure quick(li,ls:integer); begin if li<ls then begin k::=poz(li,ls); 53528cnz87yej8u quick(li,k-1); quick(k+1,ls); end; end; begin write(‘cate elemente are vectorul ?=’);readln(n); for i:=1 to n do begin write(‘tastati elementul ‘,i,’=’); readln(v[i]); end; quick(1,n); writeln(‘vectorul ordonat este :’); for i:=1 to n do writeln(v[i]); readln; end. OBSERVATIE 4daca elementul se afla in stanga ,atunci se compara cu elementele din dreapta lui si se sar (j:=j-1)elementele mai mari decat el ; 4daca elementul se afla in dreapta ,atunci se compara cu elemente din stanga lui si se sar (i:=i+1)elementele mai mici decat el.