Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Sortare rapida (QuickSort) <andys>
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

Secventa de comparatie din metoda lui Batcher este predeterminata; de fiecare data se compara aceleasi perechi de chei, indiferent de rezultatele comparatiilor anterioare. k8j21jq
Sortarea rapida, in schimb, foloseste rezultatele fiecarei comparatii pentru a stabilii care sunt cheile care urmeaza a fi comparate.
Deci, se foloseste urmatoare schema: se utilizeaza doi indicatori i si j, cu i=1 si j=N. Se compara Ki cu Kj si daca nu este necesar interschimbul, se micsoreaza j cu 1, repetandu-se procesul. Daca apare un interschimb, se mareste i cu 1si se continua compararea marind i pana la aparitia unui interschimb. Apoi, se micsoreaza din nou j, continuandu-se in acelasi mod, pana cand i=j.
Exemplu:
Numerele: 503 087 512 061 908 170 897 275 653 426 154 509 612 677 765 703
Descreste j
Interschimb 1: 154 087 512 061 908 170 897 275 653 426 503 509 612 677 765 703
Mareste i
Interschimb 2: 154 087 503 061 908 170 897 275 653 426 512 509 612 677 765 703
Descreste j
Interschimb 3: 154 087 426 061 908 170 897 275 653 503 512 509 612 677 765 703
Mareste i
Interschimb 4: 154 087 426 061 503 170 897 275 653 908 512 509 612 677 765 703
Descreste j
Interschimb 5: 154 087 426 061 275 170 897 503 653 908 512 509 612 677 765 703
Mareste i
Interschimb 6: 154 087 426 061 275 170 503 897 653 908 512 509 612 677 765 703
Descreste j
Fiecare comparatie din exemplu, a implicat cheia 503; in general, fiecare comparatie va implica valoarea originala a cheii K1, deoarece ea va fi modificata odata cu fiecare schimbare de directie.In momentul cand i=j, inregistrarea originala R1, va fi plasata in pozitia finala, deoarece se poate vedea ca nu vor exista chei mai mari la stanga sa si nici mai mici la dreapta sa. Inregistrarile vor fi impartite intr-o asemenea maniera, incat problema initiala este redusa la doua probleme mai simple: sortarea Ri - Ri-1 si sortarea Ri+1 - RN. Se poate aplica aceasi tehnica fiecarei dintre aceste doua multimi de inregistrari.
Pentru a tine minte multimile de elemente care sunt impartite, se foloseste o stiva. Alt exemplu, care arata modul in care sunt sortate inregistrarile prin acesta metoda, este dat in tabelul de mai jos. Parantezele, indica inregistrarile care mai trebui sortate; inregistrarile impartite in grupe sunt reprezentate prin doua variabile l si r, care reprezinta limitele inregistrarilor care sunt curent examinate.
Stiva (l,r)
a503 087 512 061 908 170 897 275 653 426 154 509 612 677 765 703i (1,16) -
a154 087 426 061 275 170i 503 a897 653 908 512 509 612 677 765 703i (1,6) (8,16)
a061 087i 154 a426 275 170i 503 a897 653 908 512 509 612 677 765 703i (1,2) (4,6) (8,16)
061 087 154 426 275 170 503 a897 653 908 512 509 612 677 765 703i (4,6) (8,16)
061 087 154 170 275 426 503 a897 653 908 512 509 612 677 765 703i (4,5) (8,16)
061 087 154 170 275 426 503 a897 653 908 512 509 612 677 765 703i (8,16) 061 087 154 170 275 426 503 703 653 765 512 509 612 677 897 908 (8,14) 061 087 154 170 275 426 503 677 653 612 512 509 703 765 897 908 (8,12) 061 087 154 170 275 426 503 509 653 612 512 677 703 765 897 908 (8,11) 061 087 154 170 275 426 503 509 653 612 512 677 703 765 897 908 (9,11) 061 087 154 170 275 426 503 509 512 612 653 677 703 765 897 908 (9,10) 061 087 154 170 275 426 503 509 512 612 653 677 703 765 897 908 - Aceata metoda de sortare, a fost numita sortare prin interschimb de partitii; ea a fost propusa de C. A. R. Hoare. Hoare, si-a denumit metoda "sortare rapida". Intregul proces de sortare, necesita doar 48 de comparatii, fiind intrecuta la numarul de comparatii doar de sortarea prin insertie binara, care are un numar de 47 de comparatii. Si numarul de interschimbari este destul de mic, ea necesitand doar 17 interschimbari.
Algoritmul:
Inregistrarile R1, ..., RN sunt rearanjate pe loc; dupa terminarea sortarii, cheile lor vor fi in ordine K1, ..., KN. Pentru memorarea temporara, este necesara o stiva cu cel mult log2N intrari.
1. Se presupune prezenta cheilor artificiale K0=- si KN+1=+ , astfel incat, K0 Ki KN+1 pentru 1 i N. (egalitatea este permisa).
2. Subgrupele de inregistrari ale lui M, sau un numar redus de inregistrari, sunt sortate prin insertie directa, unde M 1 este un parametru care trebuie ales dupa cum se descrie mai jos.
3. Pe durata unei etape particulare, sunt efectuate una sau doua comparatii suplimentare (permitand indicatorilor i si j sa se intersecteze).
4. Inregistrarile cu chei egale, sunt interschimbate, desi nu este strict necesar (Idea este datorata lui R. C. Singleton, si ajuta la sectionarea grupurilor de inregistrari pe jumatate, atunci cand sunt un numar egal de elemente).

1. aInitializeaza.i Stabileste stiva vida si l=1, r=N
2. aIncepe o noua etapa.i (Se doreste sortarea grupurilor de inregistrari Rl ...Rr). Daca r-1<M, mergi la pasul 8. In caz contrar, stabileste i=l, j=r, K=Kl, R=Rl.
3. aCompara K:Kj.iDaca K<Kj, micsoreaza j cu 1 si repeta acest pas.
4. aTransfer la Ri.i (La acest pas, Ki este o cheie nesemnificativa K, si K Kj.) Daca j i, stabileste Ri=R si mergi la pasul 7. Altfel, Ri=Rj mareste i cu 1.
5. aCompara Ki:K.i Daca Ki<K, mareste i cu 1 si repeta acest pas.
6. aTransfer la Rj.i (La acest pas, Kj este o cheie nesemnificativa K, siK Ki). Daca j i, stabileste Rj=R si i=j. Altfel, Rj=Ri, micsoreaza j cu 1 si mergi la pasul 3.
7. aPune in stiva.i (Acum, grupa de inregistrari, Rl...Ri...Rr a fost partitionata astfel incat Kk Ki pentru l k i si Ki Kk pentru i k r.) Daca r-i i-l, plaseaza (i+1,r) in varful stivei si stabileste r=i-1. In caz contrar, plaseaza (l,i-1) in varful stivei si stabileste l=i+1. (Fiecare intrare (a,b) in stiva, reprezinta o cerere de sortare a grupului de inregistrari Ra...Rb la un anumit timp, in viitor). Acum, mergi inapoi la pasul 2.
8. aSortare prin insertie directa.i pentru j=l+1 la r-1, efectueaza urmatoarele operatii: stabileste K=Kj, R=Rj, i=j-1; apoi, stabileste Ri+1=Ri, i=i-1, de zero sau mai multe ori, pana cand Ki=K; apoi stabileste Ri+1=R. (Acesta, este in esenta algoritmul de sortare prin insertie directa, aplicat grupului de inregistrari formate din M sau mai putine elemente.)
9. aAnuleaza stiva.i Daca stiva este vida, sortarea s-a efectuat; in caz contrar, inlatura intrarea ei din varf (l',r'), stabileste l=l', r=r' si revino la pasul 2.




Algoritmul reprezentat prin scheme logice:


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta