Vajad kellegagi rääkida?
Küsi julgelt abi LasteAbi
Logi sisse

Algoritmid ja andmestruktuurid: puud, kuhjad (0)

1 Hindamata
Punktid
1
Kuhjad
2
Olemus
Kuhi  (ingl  heap ) on puu või mets, kus:
– igas tipus on üks võtmega kirje,  kusjuures  võtmed on omavahel
võrreldavad;
– kehtib nn kuhjatingimus (ingl heap property): iga tipu kirje
võti on vähemalt niisama suur kui tema suvalise alluva kirje võti.
3
Märkusi
• Tihti kasutatakse ka kuhje, kus kuhjatingimuses nõutakse vastupi-
dist järjestust: iga tipu kirje võti on ülimalt niisama suur kui tema
suvalise alluva kirje võti (nn pöördkuhi (ingl min-heap)).
• Kasutatakse mitut kuhjaliiki, millest igaühe puhul nõutakse lisaks
tingimusi puu struktuuri kohta.
4
Eesmärk
Kuhjad on mõeldud puhuks, kui ühtedeks põhioperatsioonidest on suu-
rima (või vähima) võtmega kirje leidmine ja eemaldamine.
Lisaks neile peab olema võimalik odavalt  sooritada   kirjete  lisamist.
– Sobivad seega eelistusjärjekorra realiseerimiseks.
1
Kahendkuhjad
5
Kahendkuhjad
1
Kahendkuhjad
6
Invariant
Kahendkuhja (ingl  binary  heap) puhul nõutakse
– kuhjatingimust
– ja et tegu oleks kompaktse kahendpuuga.
1
Kahendkuhjad
7
Kuhjatingimuse rekurrentne määratlus
Kahendpuu  rahuldab  kuhjatingimust, kui kas ta on tühi või
– juure kirje võti on maksimaalne üle kogu puu (pöördkuhja puhul
minimaalne), ja
– mõlemad harud rahuldavad kuhjatingimust.
1
Kahendkuhjad
8
Ülekanduvus alampuudele
Kahendkuhja iga alampuu on kahendkuhi.
1
Kahendkuhjad
9
Esitus
Eeldame, et
– iga tipu puhul on  ajaga  O(1) kättesaadav tema ülemus, kui see
leidub (lisaks muidugi alluvatele).
– ajaga O(1) on teostatav viimase taseme viimase tipu likvideeri-
mine ja uue tipu lisamine sinna.
Kui kahendkuhja esitamiseks kasutada kompaktse kahendpuu esitust
massiivina ja kasutada lisaks üht välja kirjete reaalse arvu hoidmiseks,
siis need tingimused on täidetud, välja arvatud uue tipu lisamine juhul,
kui  massiiv  on täis.
1
Kahendkuhjad
10
1.1
Operatsioonid
Operatsioonid
1
Kahendkuhjad
11
1.1
Operatsioonid
Lisamisülesanne
Lisada antud kahendkuhja antud kirje.
–  Sisend : kahendkuhi, kirje.
1
Kahendkuhjad
12
1.1
Operatsioonid
Lahendus
Lisatakse endisi tippe puutumata puule uus tipp, nii et puu jääb kom-
paktseks kahendpuuks;
kirjutatakse  uus kirje uude tippu;
viiakse uus kirje mullina mööda puustruktuuri üles oma kohale, nii et
ka kuhjatingimus  taastub .
1
Kahendkuhjad
13
1.1
Operatsioonid
Mullina ülesviimine
Mullina ülesviimine (ingl  bubble -up):
kui kirje on tipu ülemuse kirje suhtes  vales  järjestussuhtes, siis
–  vahetatakse  ta ülemuse  kirjega ,
– ja viiakse ta omakorda sealt mullina üles.
1
Kahendkuhjad
14
1.1
Operatsioonid
Keerukus
Eeldusel, et võrdlusoperatsioonid ja vahetused on O(1), toimub lisa-
mine
– halvimal juhul keerukusega O(log n),
– parimal ja keskmisel juhul keerukusega O(1),
kus n tähistab  kuhja  tippude arvu.
1
Kahendkuhjad
15
1.1
Operatsioonid
Eemaldamisülesanne
Eemaldada kahendkuhjast suurima võtmega kirje.
– Sisend: kahendkuhi.
– Väljund: kuhja vähima võtmega kirje, kui kuhi just tühi ei olnud.
1
Kahendkuhjad
16
1.1
Operatsioonid
Lahendus
Kui puu on tühi, siis lõpetatakse ebaõnnestumisega.
Muidu:
– likvideeritakse puu viimase taseme viimane tipp;
– kirjutatakse seal olnud kirje puu juurtippu;
– viiakse juurtipu kirje mullina alla, nii et taastub kuhjatingimus;
– tagastatakse juurtipus algselt olnud kirje.
1
Kahendkuhjad
17
1.1
Operatsioonid
Mullina allaviimine
Mullina allaviimine (ingl bubble-down):
kui kirje on oma mõne alluvaga vales järjestussuhtes, siis
– vahetatakse ta tipu selle alluva kirjega, mille võti on suurem
(pöördkuhja puhul väiksem);
– viiakse ta oma uuelt positsioonilt omakorda alla.
1
Kahendkuhjad
18
1.1
Operatsioonid
Keerukus
Eeldusel, et võrdlusoperatsioonid ja vahetused on O(1), toimub suuri-
ma võtmega kirje eemaldamine
– halvimal ja keskmisel juhul keerukusega Θ(log n),
– parimal juhul keerukusega Θ(1).
1
Kahendkuhjad
19
1.1
Operatsioonid
Kuhjaparandused
Ühe vales positsioonis asuva kirje mullina üles- või allaviimist nime-
tatakse kuhjaparanduseks.
– Need aitavad ka juhul, kui ühes kindlas positsioonis kirje võti
muutub.
1
Kahendkuhjad
20
1.1
Operatsioonid
Massiivi täitumise probleem
Kui kahendkuhi esitada massiivina, siis tasub massiivi suurus võtta va-
ruga, et täitumist tuleks ette küllalt harva.
Nt võtta massiiv pikkusega 2n − 1 (täieliku kahendpuu suurus) ja kui
ta saab täis, siis võtta uus massiiv pikkusega 2n+1 − 1 jne.
– Siis tipu juurdetekitamine viimase taseme lõppu on keskmise
keerukusega O(1).
1
Kahendkuhjad
21
1.2
Järjestamise kuhjameetod
Järjestamise kuhjameetod
1
Kahendkuhjad
22
1.2
Järjestamise kuhjameetod
Kuhjastamine
Ülesanne: tekitada kahendkuhi, milles oleksid  parajasti  samad  kirjed
nagu antud järjendis.
– Sisend: järjend.
– Väljund:  samade  kirjetega kahendkuhi.
1
Kahendkuhjad
23
1.2
Järjestamise kuhjameetod
“Jaga ja valitse” lahendusalgoritm
Esiteks tekitada kompaktne kahendpuu, milles oleksid parajasti samad
kirjed nagu antud järjendis. (St paigutada tipud kompaktse kahendpuu
struktuuri järgi.)
Seejärel muuta puu kuhjaks “jaga ja valitse” strateegiaga:
– muuta kuhjaks kumbki haru samal viisil;
– viia juure kirje mullina alla.
1
Kahendkuhjad
24
1.2
Järjestamise kuhjameetod
Järjestikalgoritm
Luua tühi kuhi;
lisada järjendi kirjed järjekorras sinna.
1
Kahendkuhjad
25
1.2
Järjestamise kuhjameetod
Keerukus
Kui n tähistab kirjete arvu, siis järjendi pealt kuhja tekitamise keerukus
on
– järjestikalgoritmi puhul halvimal juhul Θ(n log n), keskmisel ja
parimal juhul Θ(n);
– “jaga ja valitse” algoritmi puhul alati Θ(n).
1
Kahendkuhjad
26
1.2
Järjestamise kuhjameetod
“Jaga ja valitse” algoritm massiivi puhul
• Eeltöö — kompaktse kahendpuu struktuuri loomine — on triviaal-
ne.
– Etteantud massiivi võib algusest peale käsitleda nii, nagu ta väl-
jendaks kompaktset kahendpuud.
∗ Positsioonid massiivis määravad alluva-ülemuse suhted ära.
• Põhitöö — järjest suuremate alampuude muutmine kuhjaks — on
teostatav tsükliga.
– Läbime massiivi tagurpidi, rakendades iga elemendi juures kirje
allaviimist.
1
Kahendkuhjad
27
1.2
Järjestamise kuhjameetod
Järjestamine
Järjend kuhjastatakse, ning
tsüklis eemaldatakse kuhjast suurima võtmega kirje ja lisatakse looda-
vasse järjendisse suunaga lõpust alguse poole, kuni kuhi saab tühjaks.
– Meetod on ebastabiilne.
1
Kahendkuhjad
28
1.2
Järjestamise kuhjameetod
Keerukus
Järjestamise kuhjameetodi keerukus on O(n log n).
2
Binomiaalkuhjad
29
Binomiaalkuhjad
2
Binomiaalkuhjad
30
Invariant
Binomiaalkuhja (ingl binomial heap) puhul nõutakse
– kuhjatingimust (pööratud järjestuse suhtes)
– ja et tegu oleks binomiaalmetsaga (metsaga, kus puudeks on paa-
rikaupa erinevat järku binomiaalpuud).
2
Binomiaalkuhjad
31
Ülekanduvus alamstruktuuridele
Binomiaalkuhja igast tipust lähtuva puu harude mets on binomiaalku-
hi.
2
Binomiaalkuhjad
32
Eesmärk
Lisaks kahendkuhjas defineeritud operatsioonidele lubab binomiaal-
kuhjastruktuur ka kuhjade kiiret ühendamist.
2
Binomiaalkuhjad
33
Esitus
Sobib kasutada seotud paigutust (nagu ikka metsal). Üldiselt  piisab
puudes viitadest alla (alluvatele/harude metsale).
– Kui vaja arvestada  muutuvate  võtmetega, siis tuleks efektiivsuse
huvides puudes kasutada topeltviitu (st viidad nii alla kui üles).
Efektiivsuse huvides peaks kuhja igal binomiaalpuul olema juures jär-
ku näitav lisaväli.
2
Binomiaalkuhjad
34
2.1
Operatsioonid
Operatsioonid
2
Binomiaalkuhjad
35
2.1
Operatsioonid
Ühendamisülesanne
Viia antud kahest binomiaalkuhjast ühe kõik kirjed teise.
– Sisend: kaks binomiaalkuhja.
2
Binomiaalkuhjad
36
2.1
Operatsioonid
Lahendusalgoritm
Algul ühendatakse binomiaalmetsad üheks metsaks järjestatud järjen-
dite põimimise  algoritmiga , käsitledes metsi järjenditena, kus kirjeteks
on neisse kuuluvad binomiaalpuud ja võtmeteks puude järgud.
Saadud mets käiakse läbi alustades vähimast järgust. . .
2
Binomiaalkuhjad
37
2.1
Operatsioonid
Lahendusalgoritmi jätk
– Kui  jooksva  puu järk on väiksem järgneva puu järgust, siis jät-
katakse sama tööd kohe järgmisest puust.
– Kui jooksva puu järk on võrdne nii järgmise kui ülejärgmise
omaga, siis samuti jätkatakse tööd kohe järgmisest puust.
– Kui jooksva puu järk on võrdne järgmisega, kuid väiksem üle-
järgmise omast, siis
∗ paigutatakse kahest võrdse järguga puust see, mille juure
kirje võti on suurem, ümber teise haruks,
∗ ja jätkatakse sama tööd edasi äsjatekkinud puust.
2
Binomiaalkuhjad
38
2.1
Operatsioonid
Lisamisülesanne
Lisada antud binomiaalkuhja antud kirje.
– Sisend: binomiaalkuhi, kirje.
2
Binomiaalkuhjad
39
2.1
Operatsioonid
Lahendusalgoritm
Luuakse binomiaalmets, mille ainus puu on 1-tipuline puu, mille ainsa
tipu kirje on antud kirje.
Ühendatakse antud binomiaalkuhi ja loodud uus 1-tipuline kuhi.
2
Binomiaalkuhjad
40
2.1
Operatsioonid
Otsimisülesanne
Otsida antud binomiaalkuhjast vähima võtmega kirje.
– Sisend: binomiaalkuhi.
– Väljund: vähima võtmega kirje positsioon.
2
Binomiaalkuhjad
41
2.1
Operatsioonid
Lahendusalgoritm
Käsitledes metsa järjendina, kus kirjeteks on sinna kuuluvad bino-
miaalpuud ja võtmeks puu juure kirje võti, rakendatakse järjestatud
järjendist vähima võtme otsimise algoritmi.
2
Binomiaalkuhjad
42
2.1
Operatsioonid
Eemaldamisülesanne
Eemaldada antud binomiaalkuhjast vähima võtmega kirje.
– Sisend: binomiaalkuhi.
– Väljund: vähima võtmega kirje.
2
Binomiaalkuhjad
43
2.1
Operatsioonid
Lahendusalgoritm
Kui kuhi on tühi, siis lõpetatakse ebaõnnestumisega.
Vastasel korral
– otsitakse üles puu, mille juure kirje võti on vähim;
– käsitledes metsa puude järjendina, tõmmata see puu vastava jär-
jendioperatsiooniga kuhjast välja;
– ühendatakse  eemaldatud  puu harude mets  eemaldamisel  järele
jäänud kuhjaga;
– tagastatakse eemaldatud puu juure kirje.
2
Binomiaalkuhjad
44
2.1
Operatsioonid
Keerukus
Kõik algoritmid on keerukusega O(log n), kus n on kuhja tippude arv
(ühendamise puhul kahe kuhja tippude koguarv).
Vasakule Paremale
Algoritmid ja andmestruktuurid-puud-kuhjad #1 Algoritmid ja andmestruktuurid-puud-kuhjad #2 Algoritmid ja andmestruktuurid-puud-kuhjad #3 Algoritmid ja andmestruktuurid-puud-kuhjad #4 Algoritmid ja andmestruktuurid-puud-kuhjad #5 Algoritmid ja andmestruktuurid-puud-kuhjad #6 Algoritmid ja andmestruktuurid-puud-kuhjad #7 Algoritmid ja andmestruktuurid-puud-kuhjad #8 Algoritmid ja andmestruktuurid-puud-kuhjad #9 Algoritmid ja andmestruktuurid-puud-kuhjad #10 Algoritmid ja andmestruktuurid-puud-kuhjad #11 Algoritmid ja andmestruktuurid-puud-kuhjad #12 Algoritmid ja andmestruktuurid-puud-kuhjad #13 Algoritmid ja andmestruktuurid-puud-kuhjad #14 Algoritmid ja andmestruktuurid-puud-kuhjad #15 Algoritmid ja andmestruktuurid-puud-kuhjad #16 Algoritmid ja andmestruktuurid-puud-kuhjad #17 Algoritmid ja andmestruktuurid-puud-kuhjad #18 Algoritmid ja andmestruktuurid-puud-kuhjad #19 Algoritmid ja andmestruktuurid-puud-kuhjad #20 Algoritmid ja andmestruktuurid-puud-kuhjad #21 Algoritmid ja andmestruktuurid-puud-kuhjad #22
Punktid 50 punkti Autor soovib selle materjali allalaadimise eest saada 50 punkti.
Leheküljed ~ 22 lehte Lehekülgede arv dokumendis
Aeg2014-05-07 Kuupäev, millal dokument üles laeti
Allalaadimisi 44 laadimist Kokku alla laetud
Kommentaarid 0 arvamust Teiste kasutajate poolt lisatud kommentaarid
Autor HeinoEnden Õppematerjali autor

Sarnased õppematerjalid

Algoritmid ja andmestruktuurid eksamiks kordamine
80
pdf

Algoritmid ja andmestruktuurid eksamiks kordamine

1. Algoritm. Algoritmi keerukus. Ajalise keerukuse asümptootiline hinnang. Erinevad keerukusklassid: kirjeldus, näited. 1.1 Algoritm • Mingi meetod probleemi lahendamiseks, mida saab realiseerida arvutiprogrogrammi abil. • Algoritm on õige, kui kõigi sisendite korral, mis vastavalt algoritmi kirjeldusele on lubatud, lõpetab ta töö ja annab tulemuse, mis rahuldab ülesande tingimusi. Öeldakse, et algoritm lahendab arvutusülesande. • Selline programm, mis annab probleemile õige vastuse piiratud aja jooksul. • Kindlalt piiritletud sisendi korral vastab ta järgmistele kriteeriumitele: o lõpetab töö piiratud aja jooksul; o kasutab piiratud hulka mälu; o annab probleemile õige vastuse. • Parameetrid, mille järgi hinnata algoritmide headust: o vastava mälu hulk; o töötamise kiirus ehk vajatava aja hulk.

Informaatika
Algoritmid
16
pdf

Algoritmid

1. Algoritm. Algoritmi omadused. Keerukus. Ajalise keerukuse asümptoodiline hinnang. Erinevad keerukusklassid. Algoritm on mingi meetod probleemi lahendamiseks, mida saab realiseerida arvutiprogrammi abil. Algoritm peab olema määratud nii täpselt, et seda suudaks täita isegi arvuti. Täidetavaid samme ei tohi olla liiga palju. Algoritm peab lahendama ülesande õigesti erinevate sisendandmete korral. Algoritmi 5 olulist omadust: 1. Lõplikkus. Algoritmi töö peab lõppema peale lõpliku arvu sammude läbimist. 2. Määratletus. Algoritmi iga samm peab olema rangelt ja ühemõtteliselt määratud iga juhu jaoks. 3. Sisend. Algoritmil on sisendandmed, mille hulk võib olla null. 4. Väljund. Algoritmil on vastus(ed), millel on täpselt määratud seos sisendandmetega. 5. Efektiivsus (tulemuslikkus). Algoritm peab olema nii lihtne, et on lõpliku ajavahemiku jooksul pliiatsi ja

Analüütiline geomeetria
Algoritmid ICD0001 - kordamisküsimused
22
docx

Algoritmid ICD0001 - kordamisküsimused

kiirmeetod Radix sort, O(n) O(n) Stabiilne. positsioonimeetod Merge sort, O(n logn) O(n logn) On enamasti ühildusmeetod stabiilne. Paisktabel, hash O(1) O(1) table Heap sort, O(n logn) O(n logn) kuhjameetod 1. Algoritmi omadused. Algoritmide asümptootiline analüüs: relatsioonid "suur- O", "väike-o", teeta, "suur-oomega" ja "väike-oomega"; nende definitsioonid ning põhiomadused. Mida miski täpselt tähendab. Algoritm on täpne (üheselt mõistetav) juhis antud ülesande lahendamiseks. Algoritm koosneb lõplikust arvust sammudest, millest igaüks on täidetav lõpliku aja jooksul lõplikke ressursse kasutades. Algoritmi rakendatakse teatavale lähteandmete komplektile (sisend)

Algoritmid ja andmestruktuurid
Mikroprotsessortehnika
282
pdf

Mikroprotsessortehnika

TALLINNA TEHNIKAÜLIKOOL ELEKTRIAJAMITE JA JÕUELEKTROONIKA INSTITUUT ROBOTITEHNIKA ÕPPETOOL MIKROPROTSESSORTEHNIKA TÕNU LEHTLA LEMBIT KULMAR Tallinn 1995 2 T Lehtla, L Kulmar. Mikroprotsessortehnika TTÜ Elektriajamite ja jõuelektroonika instituut. Tallinn, 1995. 141 lk Toimetanud Juhan Nurme Kujundanud Ann Gornischeff Autorid tänavad TTÜ arvutitehnika instituudi lektorit Toomas Konti ja sama instituudi dotsenti Vladimir Viiest raamatu käsikirjas tehtud paranduste ja täienduste eest.  T Lehtla, L Kulmar, 1995  TTÜ elektriajamite ja jõuelektroonika instituut, 1995 Kopli 82, 10412 Tallinn Tel 620 3704, 620 3700. Faks 620 3701 ISBN 9985-69-006-0 TTÜ trükikoda. Koskla 2/9, Tallinn EE0109 Tel 552 106 3 Sisukord Saateks

Tehnikalugu
Nimetu
575
docx

Nimetu

Sisukord Eessõna Hea õpilane! Microsofti arenduspartnerid ja kliendid otsivad pidevalt noori ja andekaid koodimeistreid, kes oskavad arendada tarkvara laialt levinud .NET platvormil. Kui Sulle meeldib programmeerida, siis usun, et saame Sulle pakkuda vajalikku ja huvitavat õppematerjali. Järgneva praktilise ja kasuliku õppematerjali on loonud tunnustatud professionaalid. Siit leid uusimat infot nii .NET aluste kohta kui ka juhiseid veebirakenduste loomiseks. Teadmiste paremaks omandamiseks on allpool palju praktilisi näiteid ja ülesandeid. Ühtlasi on sellest aastast kõigile kättesaadavad ka videojuhendid, mis teevad õppetöö palju põnevamaks. Oleme kogu õppe välja töötanud vabavaraliste Microsoft Visual Studio ja SQL Server Express versioonide baasil. Need tööriistad on mõeldud spetsiaalselt õpilastele ja asjaarmastajatele Microsofti platvormiga tutvumiseks. Kellel on huvi professionaalsete tööriistade proovimiseks, siis tasub lähemalt tutvuda õppuritele

Informaatika
Juhtimise alused
161
pdf

Juhtimise alused

EESTI-AMEERIKA ÄRIAKADEEMIA JUHTIMISE ALUSED Konspekt Koostaja: Ain Karjus 2012/2013. õa. SISUKORD Jrk. nr. Nimetus Lk. nr. Sissejuhatus 6 1. Juhtimine ja juht 7 1.1 Juhtimine ja juht: üldmõisted ja funktsioonid 7 1.1.1 Juhtimise (mänedzmendi) üldmõisted 7 1.1.2 Juhtimise koht ja roll 8 1.1.3 Põhilised juhtimisfunktsioonid 8 1.1.

Juhtimine
Erakorralise meditsiini tehniku käsiraamat
937
pdf

Erakorralise meditsiini tehniku käsiraamat

Erakorralise meditsiini tehniku käsiraamat Toimetaja Raul Adlas Koostajad: Andras Laugamets, Pille Tammpere, Raul Jalast, Riho Männik, Monika Grauberg, Arkadi Popov, Andrus Lehtmets, Margus Kamar, Riina Räni, Veronika Reinhard, Ülle Jõesaar, Marius Kupper, Ahti Varblane, Marko Ild, Katrin Koort, Raul Adlas Tallinn 2013 Käesolev õppematerjal on valminud „Riikliku struktuurivahendite kasutamise strateegia 2007- 2013” ja sellest tuleneva rakenduskava „Inimressursi arendamine” alusel prioriteetse suuna „Elukestev õpe” meetme „Kutseõppe sisuline kaasajastamine ning kvaliteedi kindlustamine” programmi Kutsehariduse sisuline arendamine 2008-2013” raames. Õppematerjali (varaline) autoriõigus kuulub SA INNOVEle aastani 2018 (kaasa arvatud) ISBN 978-9949-513-16-1 (pdf) Selle õppematerjali koostamist toetas Euroopa Liit Toimetaja: Raul Adlas – Tallinna Kiirabi peaarst Koostajad: A

Esmaabi
Keskkonnakaitse lõpueksami küsimused-vastused
528
doc

Keskkonnakaitse lõpueksami küsimused-vastused

KESKKONNAKAITSE JA KORRALDUS 1. loodus- ja keskkonnakaitse üldküsimused  Keskkonnakaitse: atmosfääri, maavarade, hüdrosfääri ratsionaalse kasutamise ja kaitse, jäätmete taaskasutamise või ladustamise, kaitse müra, ioniseeriva kiirguse ja elektriväljade eest. Keskkonnakaitse on looduskaitse olulisim valdkond.  Looduskaitse : looduse kaitsmist (mitmekesisuse säilitamist, looduslike elupaikade ning loodusliku loomastiku, taimestiku ja seenestiku liikide soodsa seisundi tagamine), kultuurilooliselt ja esteetiliselt väärtusliku looduskeskkonna või selle elementide säilitamine, loodusvarade kasutamise säästlikkusele kaasaaitamine 2. loodus- ja keskkonnakaitse mõiste  Keskkonnakaitse- rahvusvahelised, riiklikud, poliitilis-administratiivsed, ühiskondlikud ja majanduslikud abinõud inimese elukeskkonna saastamise vähendamiseks ja vältimiseks ning l

Keskkonnakaitse ja säästev areng




Kommentaarid (0)

Kommentaarid sellele materjalile puuduvad. Ole esimene ja kommenteeri



Sellel veebilehel kasutatakse küpsiseid. Kasutamist jätkates nõustute küpsiste ja veebilehe üldtingimustega Nõustun