12.07.2015 Views

Slaidid

Slaidid

Slaidid

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

OtsimineJärjestikotsimine. Kahendotsimine.Kahendotsimispuu. AVL-puu. Puna-must puu.


OtsimisülesanneOn antud N kirjet, nende hulgast on vaja leida ükskirje, mille võti vastab otsitavale võtmele K. Vastavkirje tagastatakse või antakse teada, et sellisevõtmega kirjet ei olnud.Igal kirjel on võtmeväli, mis on reeglina unikaalne.Edukas otsimine – leiti kirje võtmeväärtusega KMitteedukas otsmine – kirjet võtmeväärtusega Kei leitud.


OtsimismeetodidMeetodite keerukusklassid varieeruvadlineaarsest kuni konstantseni (O(N) ... O(1)).Sõltuvalt andmestiku iseloomust, sobib üks võiteine meetod.●●●Kas andmestik on konstantne või muutuv?Kas andmed on staatiliselt massiivis võidünaamiliselt?Kirjete arv?Otsimise efektiivsuse tõstmiseks saab kasutuselevõtta ka spetsiaalseid andmestruktuure.


Järjestikotsimine(Sequential search) on lihtne ja aeglaneotsimismeetod.Kuidas toimub järjestikotsimine?Keerukus: O(N) (mida see tähendas?)Millal sobib kasutada? Piirangud kasutamisel?


Kahendotsimine(Binary search) meetodi kasutamiseks on eeldus,et andmestik on järjestatud võtmeväärtuste järgi.Kuidas toimis kahendotsimine?Milline on meetodi keerukusklass?Võrreldes järjestikotsimisega – millised on eelisedja puudused?Piirangud kasutamisel?


Otsimiskahendpuu(Binary seach tree) on spetsiaalneandmestruktuur, mis tagab nii andmete lisamiselkui ka otsimisel keerukuse O(logN).Sobilik muutuva andmestiku korral.Tuleta meelde, mis oli kahendpuu?


Reeglid võtmete paigutamiseksIga tipu vasakpoolse järglase võti on väiksemselle tipu võtmest (kõik tipu vasakpoolsesalampuus olevad võtmed on väiksemad).Iga tipu parempoolse järglase võti on suurem selletipu võtmest (kõik tipu parempoolses alampuusolevad võtmed on suuremad).Reeglid kehtivad iga alampuu kohta


Kahendotsimispuu näideLisatud võtmed: Margit, Kristi, Mihkel, Peeter, Martin, Carol,Triinu, KemalMargitKristiMihkelCarolMartinPeeterKemalTriinu


Otsimine puust●●●●Alustades puu juurest liigutakse vastavaltotsitava võtme väärtusele vasakusse võiparemasse alampuusse kuni võti leitakse võikuni jõutakse leheni.Algoritmile on sisendiks võtmeväärtus K ja puujuure aadressTväljundiks tipu aadress xendwhile


Otsimise algoritmAlgoritm on esitatud pseudokeeles vastavalt CLRile.Tree-Search(x,k,T)x


Tipu (andmete) lisamineMuutuva andmestiku korral peab lisaminetoimuma kiiresti.●●●●●Alustades puu juurest võrreldakse iga tipuvõtmeväärtust lisatava elemendi võtmeväärtusega.Kui uue elemendi võti on väiksem, liigutaksevasakusse alampuusse.Kui uue elemendi võti on suurem, liigutakseparemasse alampuusse.Selliselt toimitakse iga tipu juures.Kui valitud alampuusse minna ei saa, sest alampuuon tühi, ongi uuele elemendile sobiv koht leitud.


Min ja maks●●●Kus paiknevad selliselt koostatud puusminimaalne ja maksimaalne võti?Minimaalne on kõige vasakpoolsem.Maksimaalne on kõige parempoolsem.


Tipu kustutamineAlgab otsimisest, kui tipp leitud, siis●●●●kui tipul pole lapsi, kustutadakui tipul on üks laps, paigutatakse seekustutatava tipu asemelekui tipul on mõlemad lapsed, otsitakse temaasemele talle suuruselt järgnev tipp x, millevasak alampuu on tühi;suuruselt järgmine tipp peaks paiknemakustutatava tipu paremas alampuus kõigevasakul.


AVL-puu (tasakaalustaud puu)Puu "kuju" sõltub lisatavate kirjete järjekorrast.Millal tekib nö "halb" puu?Keerukus O(logN) on otsimisel ja lisamiseltagatud siis, kui puu on tasakaalus.Puu on tasakaalustatud juhul, kui tema igaalampuu jaoks vasaku ja parema alampuukõrguste vahe pole suurem kui üks.


Tasakaalustamine (1)Tasakaalufaktori abil iseloomustatakse tipuvasaku ja parema alampuu kõrguste vahetKolm erinevat väärtust:● - tipu vasak alampuu on 1 võrra kõrgem (-1)● + tipu parem alampuu on 1 võrra kõrgem (+1)● * tipu mõlema alampuu kõrgused on võrdsed (0)


Tasakaalustamine (2)Tipul A on juba ühe võrra kõrgem parem alampuu(faktor +1), parema alampuu (millel juureks B)paremasse alampuusse lisatakse tipp, sellegamuutub ka tipu B faktor +1 ja tipu A kohalt on puutasakaalust väljas.Sarnane olukord tekib, kui eelnevalt on tipu Afaktor -1 ja tema vasakusse alampuusse tipuga Blisatakse vasakule juurde tipp. Selle tagajärjelsaab tipu B faktoriks -1 ja tipu A kohalt on puutasakaalust väljas


Tasakaalustamine (2)A++BB+Aahbhch+1ahbhch+1


Tasakaalustamine (3)Tipul A on ühe võrra kõrgem parem alampuu(faktor +1), tema paremasse alampuuse tipuga Blisatakse vasakule poole uus tipp, nii et tipu Bjaoks tasakaalufaktor muutub -1.Sarnaselt: tipul A on eelnevalt faktor -1 ja temavasakusse alampuusse tipuga B lisatakseparemale juurde tipp, mille tulemusena tipu Bfaktoriks saab +1 ning puu on A kohal tasakaalustväljas.


Tasakaalustamine (3)A++AXB-XahXaBABdhbbh-1chcdahbh-1chdh


Puna-must puu(Red Black Tree) on kahendotsimispuu.Puu ei ole nii hästi tasakaalus kui AVL-puu, kuidtema hoidmine on vähem töömahukas jatulemuslikkus pole oluliselt AVL-puust halvem.Jälgides tippude lisamisel ja kustutamisel värvideteatud skeemi saab säilitada puu mõistliku seisu.


Puu korrastaminePuu korrastamiseks kasutatakse kolmeoperatsiooni:●●●tippude värvimine - punane tipp värvitaksemustakse ja must punaseks;pööre vasakule - tipu X parem laps saabuueks (alam)puu juureks ning X ise satub temavasakuks lapsekspööre paremale - tipu X vasak laps saabuueks (alam)puu juureks ning X ise satub temaparemaks lapseks


Pöörded puusparemaleYXvasakuleXcaYabbc


Puu korrastamineLisatud tipp on alguses punane ja võib tekkida reegliterikkumine●●●Lisatud tipu isa ja onu on punased: lisatud tipu isal, onul javanaisal muudetakse värv (vanaisa punaseks, isa ja onumustaks).Lisatud tipu isa on punane ja onu on must. Lisatud tipp on omaisale paremaks lapseks, isa aga vasakuks lapseks. Reegleidrikkuva tipu ja tema punase vanema juures tehakse pöörevasakule. Tavaliselt viib see 3. juhuse tekkimisele.Lisatud tipu isa on punane ja onu on must. Nii lisatud tipp kui kaisa on vasakud lapsed. Kõigepealt tehakse pööre paremalepunase isa ja musta vanaisa suhtes. Seejärel värvitakse ringipunane isa ja must vanaisa.


Link mängimisekshttp://www.ece.uc.edu/~franco/C321/html/RedBlack/redblack.htmlLisame arvud: 50 - 25 - 15 - 10 - 12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!