1 / 12

O.I.A.M. Coordonator : Muresan Octavia

O.I.A.M. Coordonator : Muresan Octavia Incarcarea fisierului pe pagina wiki si personalizarea paginii : Muresan Octavia Editare documente si ppt : Andrei Iulia Grafica ppt si pagina wiki: Andrei Iulia Documentarea si conceperea machetei ppt : Hatos Alexandra. Un programator

vesta
Download Presentation

O.I.A.M. Coordonator : Muresan Octavia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. O.I.A.M. • Coordonator : Muresan Octavia • Incarcareafisieruluipepagina wiki sipersonalizareapaginii: Muresan Octavia • Editaredocumentesippt: Andrei Iulia • Graficapptsipagina wiki: Andrei Iulia • Documentareasiconcepereamacheteippt: Hatos Alexandra

  2. Un programator If treiversuri se declamă And un vers un pic obscen Then făcuşi o epigramă Else făcuşidoar un catren. epigramăde Dan Norea

  3. Înpracticãalgoritmul de sortarecelmai rapid este Quicksort numitãsortarerapidã, care folosestepartitionareacaidee de bazã. Este mairapidãdecâtoricemetodã de sortaresimplã, se executã bine pentrufisieresautabelemari, darineficientpentrucelemici.Strategia de bazãfolositãeste "divide et impera", pentrucãestemaiusor de sortatdouãtabelemici, decâtuna mare. Algoritmulesteusor de implementat, lucreazãdestul de bine îndiferitesituatiisiconsumãmaiputineresursedecâtoricealtãmetodã de sortareînmultesituatii. Necesitãnumaiînjur de NlogNoperatiîncazul general pentru a sorta N elemente. MetodaQuickSortpresupunegasireapozitiei finale pe care o ocupaelemenetul de pe prima pozitiecomparandu-l cu elementele din cealaltapartitie a tabelului, acestalgoritmrealizandu-se panacandpartitia are 1 element.

  4. METODA QUICK SORT • MetodaQuickSortfaca parte dinclasametodeloravansate de sortare si s-a doveditcaestecea mai rapida metoda de sortarebazatapeinterschimbareaelementelor. Aceastametoda se recomanda a se folosi in special in cazulsirurilor care suntfoarte "amestecate" (sir cvasialeator). In acestcaz se poateobserva in modspecialsuperioritateametodeiQuickSort.

  5. Ideeaacesteimetode de sortareesteaceea de a alege un pivot si a-l pozitionapeacestapeloculcorespunzatorconformordinii. Odataacelelementfixat se realizeazaacelasilucru si pentrusubsiruriledinparteadreapta si stanga.

  6. Problema : • Fie vectorula cu n componentenumereintregi(saureale). Se cerecavectorulsa fie sortatcrescator. Rezolvare : Este necesara o functiepozcare trateaza o portiune din vector, cuprinsaintreindiciidati de li (limitainferioara) sils(limitasuperioara). Rolulacesteifunctiieste de a pozitiona prima componentaa [li] pe o pozitiek cuprinsaintreli sils, astfelincattoatecomponentelevectoruluicuprinseintreli sik-1sa fie maimicisauegaledecata[k]sitoatecomponentelevectoruluicuprinseintrek+1silssa fie maimarisauegaledecata[k].

  7. In aceastafunctieexistadouamoduri de lucru: a) i ramane constant; j scade cu 1; b) icreste cu 1; j ramane constant. Functiaesteconceputaastfel: • Initial, i valuavaloareali, iarj valuavaloareals(elementul care initial se aflapepozitiali se vagasimereupe o pozitie data de Isau de j); • Se trece in modul de lucru a); • Atattimp cat i<j , se executa: - dacaa[i] este strict mai mare decata[j], atunci se inverseazaceledouanumeresi se schimbamodul de lucru; - i sij se modificacorespunzatormodului de lucru in care se aflaprogramul;

  8. - k iavaloareacomuna a luii sij. FunctiaQUICK are parametriili sils (limitainferioarasilimitasuperioara). In cadrulei se utilizeazametodaDIVIDE ET IMPERA, dupa cum urmeaza: • se apeleazaPOZ; • se apeleazaQUICK pentruli sik-1; • se apeleazaQUICK pentruk+1sils. type vector=array [1..100] of integer; vari,n,k:integer; a:vector,

  9. procedure poz (li,ls:integer; vark:integer; var a:vector); Var i,j,c,i1,j1:integer; Begin i1:=0; j1:=-1; i:=li; j:=ls; While i<j do begin if a[i]>a[j] then begin

  10. c:=a[j]; a[j]:=a[i]; a[i]:=c; c:=i1; i1:=-j1; j1:=-c end; i:=i+i1; j:=j+j1 end; k:=I end;

  11. procedure quick (li,ls:integer); begin if li<ls then begin poz(li,ls,k,a); quick(li,k-1); quik(k+1,ls) end end;

  12. begin write(`n=`); readln(n); for i:=1 to n do begin write(`a[`,I,`]=`); readln(a[i]) end; quick(1,n); for i:=1 to n do writeln (a[i]) end.

More Related