Algoritmit 2. Luento 5 Ti Timo Männikkö
|
|
- Kirsi Mattila
- 5 vuotta sitten
- Katselukertoja:
Transkriptio
1 Algoritmit 2 Luento 5 Ti Timo Männikkö
2 Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti /34
3 B-puu B-puut ovat tasapainoisia hakupuurakenteita Algoritmit 2 Kevät 2019 Luento 5 Ti /34
4 B-puu Motivaatio: Hyvin suuria tietomääriä ei välttämättä voida käsitellä keskusmuistissa yhtenä kokonaisuutena Tietoa joudutaan siirtämään keskusmuistin ja hitaampien ulkoisten muistien (levymuistit) välillä Tarkoituksena minimoida ulkoisiin muisteihin kohdistuvien I/O-operaatioiden lukumäärä Käytetään mm. suurten tietokantojen indekseinä suorasaannin toteuttamiseksi Algoritmit 2 Kevät 2019 Luento 5 Ti /34
5 B-puu B-puu yleisesti: Solmut lehtisolmuja tai haarautumissolmuja Kaikki lehtisolmut ovat samalla syvyydellä h (= puun korkeus) Jokaisessa solmussa x on Solmuun tallennettujen alkioiden lukumäärä x.num Alkiot avaimen mukaan kasvavassa järjestyksessä Merkitään i:nnen alkion avainta x.key[i] ja arvoa x.value[i], missä i = 1, 2,..., x.num Algoritmit 2 Kevät 2019 Luento 5 Ti /34
6 B-puu B-puu yleisesti (jatkuu): Jokaisessa haarautumissolmussa on lisäksi x.num + 1 kpl osoittimia x.child[i] Osoitin x.child[1] osoittaa alipuuhun, jonka alkioiden avaimet < x.key[1] Osoitin x.child[i], missä i = 2, 3,..., x.num, osoittaa alipuuhun, jonka alkioiden avaimet k välillä x.key[i 1] < k < x.key[i] Osoitin x.child[x.num + 1] osoittaa alipuuhun, jonka alkioiden avaimet > x.key[x.num] Algoritmit 2 Kevät 2019 Luento 5 Ti /34
7 B-puu Astetta m oleva B-puu: Arvo m Solmujen minimi- ja maksimikoko Alkioiden lukumäärä: Juurisolmussa vähintään 1, muissa solmuissa vähintään m 1 Jokaisessa solmussa enintään 2m 1 Osoittimien lukumäärä aina yhtä suurempi: Vähintään m (juurisolmussa 2), enintään 2m Solmu täysi: Maksimimäärä alkioita Solmu puoliksi täysi: Minimimäärä alkioita Algoritmit 2 Kevät 2019 Luento 5 Ti /34
8 B-puu Esimerkiksi m = 2: Alkioita solmuissa 1, 2 tai 3 Osoittimia haarautumissolmuissa 2, 3 tai puu Esimerkiksi m = 3: Alkioita solmuissa 2 5 Osoittimia haarautumissolmuissa 3 6 Algoritmit 2 Kevät 2019 Luento 5 Ti /34
9 Esimerkki Algoritmit 2 Kevät 2019 Luento 5 Ti /34
10 B-puun korkeus Lause: Astetta m oleva B-puu, jossa on n alkiota Puun korkeus h log m ((n + 1)/2) Todistus: Juurisolmussa vähintään yksi alkio, muissa solmuissa vähintään m 1 alkiota Juurisolmulla vähintään 2 lasta, muilla solmuilla vähintään m lasta Tasolla 1 vähintään 2 solmua, tasolla 2 vähintään 2m solmua, tasolla 3 vähintään 2m 2 solmua jne. Algoritmit 2 Kevät 2019 Luento 5 Ti /34
11 B-puun korkeus Todistus jatkuu: Yleisesti tasolla i vähintään 2m i 1 solmua, joissa vähintään m 1 alkiota n 1 + (m 1) = 1 + 2(m 1) h i=1 2m i 1 ( m h 1 m 1 ) = 2m h 1 m h (n + 1)/2 h log m ((n + 1)/2) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
12 B-puun operaatioiden vaativuus Kuten järjestettyjen binääripuiden perusoperaatiot (haku, lisäys, poisto) Pahimmassa tapauksessa käydään läpi jokin polku juurisolmusta lehtisolmuun Puun korkeus määrää operaatioiden aikavaativuuden Edellinen lause Aikavaativuus Θ(log n) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
13 B-puun operaatiot: Haku Alkion haku: Aloitetaan juurisolmusta Etsitään alkiota solmusta Jos alkio ei ole solmussa, siirrytään alkion avainta vastaavaan alipuuhun Jatketaan samalla tavalla Tarvittaessa johonkin lehtisolmuun saakka Lopetetaan kun alkio löytyy, tai kun todetaan että alkiota ei ole puussa Algoritmit 2 Kevät 2019 Luento 5 Ti /34
14 B-puun operaatiot: Haku hae(x, k) Jos x on haarautumissolmu Jos k = x.key[i] jollain i, palautetaan haluttu tieto Muuten, jos k < x.key[1], kutsutaan hae(x.child[1], k) Muuten, jos x.key[i 1] < k < x.key[i] jollain i, kutsutaan hae(x.child[i], k) Muuten on k > x.key[x.num], joten kutsutaan hae(x.child[x.num + 1], k) (Jatkuu) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
15 B-puun operaatiot: Haku (Jatkuu) Muuten x on lehtisolmu Jos k = x.key[i] jollain i, palautetaan haluttu tieto Muuten palautetaan tieto: ei löydy Haluttu tieto: Alkio, sen arvokenttä, tai osoitin alkioon Algoritmit 2 Kevät 2019 Luento 5 Ti /34
16 B-puun operaatiot: Lisäys Alkion lisäys: Kuljetaan juurisolmusta kohti avainta vastaavaa lehtisolmua Jos hakupolulla täysi solmu, halkaistaan se kahdeksi solmuksi ennen kuin jatketaan Jos juurisolmu täysi, muodostetaan uusi taso juurisolmun alapuolelle Lisätään alkio lehtisolmuun Algoritmit 2 Kevät 2019 Luento 5 Ti /34
17 B-puun operaatiot: Lisäys Hakupolulla on päästy solmuun x Hakupolku jatkuisi solmusta y, mutta y on täysi Solmun halkaisu: y x a x y a z Algoritmit 2 Kevät 2019 Luento 5 Ti /34
18 B-puun operaatiot: Lisäys Solmun y halkaisu: Olkoon a keskimmäinen alkio solmussa y Siirretään a:n oikealla puolella olevat alkiot uuteen solmuun z Jos y on haarautumissolmu, siirretään myös vastaavat lapsiosoittimet Alkion a vasemmalla puolella olevat alkiot ja vastaavat lapsiosoittimet jäävät solmuun y Siirretään a ylöspäin solmuun x paikkaan, johon se avaimensa mukaan kuuluu Lisätään x:ään uusi lapsiosoitin z:aan Algoritmit 2 Kevät 2019 Luento 5 Ti /34
19 B-puun operaatiot: Lisäys lisää_ei_täysi(x, k, v) Jos x on lehtisolmu Lisätään solmuun x.key[i] = k ja x.value[i] = v siten että alkioiden kasvava järjestys säilyy Muuten x on haarautumissolmu Etsitään y = x.child[i], jonne alkio kuuluu Jos y on täysi Halkaistaan y (ks. edellä) Jos k < a:n avain, lisää_ei_täysi(y, k, v) Muuten lisää_ei_täysi(z, k, v) Muuten y ei ole täysi, joten kutsutaan lisää_ei_täysi(y, k, v) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
20 B-puun operaatiot: Lisäys Juurisolmua ei voi halkaista samalla tavalla Sen sijaan lisätään juurisolmun alapuolelle uusi taso Uuden tason lisääminen: x a y x a z Algoritmit 2 Kevät 2019 Luento 5 Ti /34
21 B-puun operaatiot: Lisäys Uuden tason lisääminen solmun x alapuolelle: Olkoon a keskimmäinen alkio solmussa x Siirretään a:n vasemmalla puolella olevat alkiot uuteen solmuun y Siirretään a:n oikealla puolella olevat alkiot uuteen solmuun z Jos x on haarautumissolmu, siirretään myös vastaavat lapsiosoittimet Alkio a jää solmuun x Lisätään x:ään uudet lapsiosoittimet y:hyn ja z:aan Algoritmit 2 Kevät 2019 Luento 5 Ti /34
22 B-puun operaatiot: Lisäys lisää(x, k, v) Jos juurisolmu x on täysi Lisätään uusi taso (ks. edellä) Kutsutaan lisää_ei_täysi(x, k, v) Uuden tason lisääminen kasvattaa puun korkeutta Algoritmit 2 Kevät 2019 Luento 5 Ti /34
23 B-puun operaatiot: Poisto Alkion poisto: Aloitetaan poistettavan alkion etsintä juurisolmusta Pidetään huoli, että mikään solmu ei tule liian vajaaksi Tarvittaessa alkioita siirretään haarautumissolmusta sen lapsisolmuun ja päinvastoin Tarvittaessa täsmälleen puoliksi täysiä sisarussolmuja yhdistetään yhdeksi solmuksi Lopetetaan kun alkio on poistettu, tai kun todetaan että alkiota ei ole puussa Algoritmit 2 Kevät 2019 Luento 5 Ti /34
24 B-puun operaatiot: Poisto Jos hakupolulla puoliksi täysi solmu, alkioita siirretään tai solmuja yhdistetään ennen kuin jatketaan Poistettava alkio lehtisolmussa: Poistetaan alkio (solmu ei tule vajaaksi) Poistettava alkio haarautumissolmussa: Etsitään poistettavan alkion edeltäjä tai seuraaja Poistetaan edeltäjä/seuraaja puusta rekursiivisesti Korvataan poistettava alkio edeltäjällä/seuraajalla Tai: Yhdistetään lapsisolmuja ennen kuin jatketaan Algoritmit 2 Kevät 2019 Luento 5 Ti /34
25 B-puun operaatiot: Poisto Hakupolulla on päästy solmuun x Mutta seuraava solmu y on puoliksi täysi Alkioiden siirto: x a y b z x b y a z (Vastaavasti, jos z on y:n vasemmalla puolella) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
26 B-puun operaatiot: Poisto Alkioiden siirto: Jos y on puoliksi täysi, mutta sen oikealla (vasemmalla) välittömällä sisarussolmulla z on ainakin yksi alkio yli minimin: Siirretään alkio a solmusta x solmun y viimeiseksi (ensimmäiseksi) alkioksi Siirretään a:n tilalle solmun z ensimmäinen (viimeinen) alkio b Jos y ja z haarautumissolmuja, siirretään myös solmun z ensimmäinen (viimeinen) lapsiosoitin y viimeiseksi (ensimmäiseksi) lapsiosoittimeksi Algoritmit 2 Kevät 2019 Luento 5 Ti /34
27 B-puun operaatiot: Poisto Hakupolulla on päästy solmuun x Mutta seuraava solmu y ja sen välittömät sisarussolmut puoliksi täysiä Solmujen yhdistäminen: y x a z y x a (Vastaavasti, jos z on y:n vasemmalla puolella) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
28 B-puun operaatiot: Poisto Solmujen yhdistäminen: Jos y ja sen välittömät sisarussolmut puoliksi täysiä: Siirretään z:n alkiot solmuun y alkioiden järjestys säilyttäen Jos z haarautumissolmu, siirretään myös vastaavat lapsiosoittimet Siirretään alkio a solmusta x yhdistetyn solmun keskimmäiseksi alkioksi Poistetaan ylimääräinen lapsiosoitin solmusta x Algoritmit 2 Kevät 2019 Luento 5 Ti /34
29 B-puun operaatiot: Poisto Avainta k vastaavan alkion edeltäjä: Alkio, jonka avain k on k:ta lähinnä pienempi Suurin puussa oleva avain k siten, että k < k Siirrytään vasemmassa alipuussa jatkuvasti oikealle ja alaspäin niin pitkälle kuin päästään Avainta k vastaavan alkion seuraaja: Alkio, jonka avain k on k:ta lähinnä suurempi Pienin puussa oleva avain k siten, että k < k Siirrytään oikeassa alipuussa jatkuvasti vasemmalle ja alaspäin niin pitkälle kuin päästään Huom: Edeltäjä/seuraaja täytyy poistaa rekursiivisesti Algoritmit 2 Kevät 2019 Luento 5 Ti /34
30 B-puun operaatiot: Poisto poista(x, k) Jos x on lehtisolmu Jos k = x.key[i] jollain i, poistetaan alkio Muuten palautetaan tieto: ei löydy Muuten x on haarautumissolmu, tehdään seuraavaa: Jos x ei sisällä avainta k vastaavaa alkiota Etsitään y = x.child[i], jossa alkion pitäisi olla Jos y puoliksi täysi Siirretään alkioita tai yhdistetään solmuja (ks. edellä) Kutsutaan poista(y, k) (Jatkuu) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
31 B-puun operaatiot: Poisto (Jatkuu, x on haarautumissolmu) Jos x sisältää avainta k vastaavan alkion a Olkoon y alkiota a edeltävä lapsisolmu, ja z alkiota seuraava lapsisolmu Jos y:ssä ainakin yksi alkio yli minimin Etsitään a:n edeltäjä alipuusta y Poistetaan edeltäjä rekursiivisesti, eli kutsutaan poista(y, k ) Sijoitetaan edeltäjä a:n tilalle solmuun x (Jatkuu) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
32 B-puun operaatiot: Poisto (Jatkuu, x on haarautumissolmu) Jos y puoliksi täysi, mutta z:ssä ainakin yksi alkio yli minimin Etsitään a:n seuraaja alipuusta z Poistetaan seuraaja rekursiivisesti, eli kutsutaan poista(z, k ) Sijoitetaan seuraaja a:n tilalle solmuun x Jos sekä y että z puoliksi täysiä Yhdistetään y ja z (ks. edellä) Kutsutaan poista(y, k) Algoritmit 2 Kevät 2019 Luento 5 Ti /34
33 B-puun muunnelmia B+-puu: Kaikki varsinainen tieto lehtisolmuissa Haarautumissolmuissa vain avaimia ja osoittimia lapsisolmuihin Lehtisolmuissa osoittimet tietosisältöön Lehtisolmut linkitetty toisiinsa kahteen suuntaan linkitetyksi listaksi Mahdollistaa lehtisolmujen peräkkäiskäsittelyn Algoritmit 2 Kevät 2019 Luento 5 Ti /34
34 B-puun muunnelmia B*-puu: Solmut vähintään 2/3 täysiä Täysiä solmuja ei halkaista välittömästi, vaan ensin siirretään alkioita jompaankumpaan sisarussolmuun Jos sisarussolmutkin täysiä, lisätään uusi solmu ja jaetaan kahden täyden solmun alkiot suunnilleen tasan kolmen solmun kesken Keskimääräinen täyttösuhde parempi kuin tavallisella B-puulla Algoritmit 2 Kevät 2019 Luento 5 Ti /34
Algoritmit 2. Luento 5 Ti Timo Männikkö
Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti
LisätiedotAlgoritmit 2. Luento 6 To Timo Männikkö
Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100
LisätiedotAlgoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
LisätiedotAlgoritmit 2. Luento 2 To Timo Männikkö
Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento
LisätiedotAlgoritmit 1. Luento 7 Ti Timo Männikkö
Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017
LisätiedotAlgoritmit 1. Luento 8 Ke Timo Männikkö
Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin
LisätiedotAlgoritmit 2. Luento 2 Ke Timo Männikkö
Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento
LisätiedotAlgoritmit 2. Luento 4 To Timo Männikkö
Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4
LisätiedotAlgoritmit 2. Luento 4 Ke Timo Männikkö
Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4
Lisätiedotv 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.
Yleiset hakupuut 4 Monitiehakupuu: Binäärihakupuu 0 1 3 5 6 7 8 v k 1 k k 3 v v 3 v 4 k 1 k 3 k 1 k k k 3 d lapsisolmua d 1 avainta Yleinen hakupuu? Tietorakenteet, syksy 007 1 Esimerkki monitiehakupuusta
LisätiedotAlgoritmit 1. Luento 6 Ke Timo Männikkö
Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty
LisätiedotAlgoritmit 2. Luento 7 Ti Timo Männikkö
Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26
LisätiedotAlgoritmit 1. Luento 5 Ti Timo Männikkö
Algoritmit 1 Luento 5 Ti 24.1.2017 Timo Männikkö Luento 5 Järjestetty lista Järjestetyn listan operaatiot Listan toteutus taulukolla Binäärihaku Binäärihaun vaativuus Algoritmit 1 Kevät 2017 Luento 5 Ti
LisätiedotAlgoritmit 2. Demot Timo Männikkö
Algoritmit 2 Demot 2 3.-4.4.2019 Timo Männikkö Tehtävä 1 Avoin osoitteenmuodostus: Hajautustaulukko t (koko m) Erikoisarvot VAPAA ja POISTETTU Hajautusfunktio h(k,i) Operaatiot: lisaa etsi poista Algoritmit
LisätiedotAlgoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018
LisätiedotAlgoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017
LisätiedotAlgoritmit 1. Luento 12 Ti Timo Männikkö
Algoritmit 1 Luento 12 Ti 19.2.2019 Timo Männikkö Luento 12 Osittamisen tasapainoisuus Pikalajittelun vaativuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu Algoritmit
LisätiedotTietorakenteet, laskuharjoitus 7, ratkaisuja
Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9
LisätiedotPinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia
Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä
LisätiedotHakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina
Hakupuut tässä luvussa tarkastelemme puita tiedon tallennusrakenteina hakupuun avulla voidaan toteuttaa kaikki joukko-tietotyypin operaatiot (myös succ ja pred) pahimman tapauksen aikavaativuus on tavallisella
Lisätiedot58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)
58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu
LisätiedotAlgoritmit 2. Luento 14 Ke Timo Männikkö
Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan
LisätiedotAlgoritmit 1. Luento 12 Ke Timo Männikkö
Algoritmit 1 Luento 12 Ke 15.2.2017 Timo Männikkö Luento 12 Pikalajittelu Pikalajittelun vaativuus Osittamisen tasapainoisuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu
LisätiedotAlgoritmit 2. Luento 9 Ti Timo Männikkö
Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon
Lisätiedot58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut
Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten
LisätiedotB + -puut. Kerttu Pollari-Malmi
B + -puut Kerttu Pollari-Malmi Tämä monista on alunperin kirjoitettu sksn 2005 kurssille osittain Luukkaisen ja Nkäsen vanhojen luentokalvojen pohjalta. Maaliskuussa 2010 pseudokoodiesits on muutettu vastaamaan
LisätiedotAlgoritmit 1. Luento 4 Ke Timo Männikkö
Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,
LisätiedotMiten käydä läpi puun alkiot (traversal)?
inääripuut ieman lisää aidon binääripuun ominaisuuksia lehtisolmuja on yksi enemmän kuin sisäsolmuja inääripuut tasolla d on korkeintaan 2 d solmua pätee myös epäaidolle binääripuulle taso 0: 2 0 = 1 solmu
LisätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.
Lisätiedot58131 Tietorakenteet (kevät 2008) 1. kurssikoe, ratkaisuja
1 Tietorakenteet (kevät 08) 1. kurssikoe, ratkaisuja Tehtävän 1 korjasi Mikko Heimonen, tehtävän 2 Jaakko Sorri ja tehtävän Tomi Jylhä-Ollila. 1. (a) Tehdään linkitetty lista kaikista sukunimistä. Kuhunkin
LisätiedotALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012
ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,
Lisätiedot(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:
Tietorakenteet ja algoritmit, kevät 201 Kurssikoe 1, ratkaisuja 1. Tehtävästä sai yhden pisteen per kohta. (a) Invariantteja voidaan käyttää algoritmin oikeellisuustodistuksissa Jokin väittämä osoitetaan
LisätiedotAVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta
AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja
LisätiedotTKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)
TKT0001 Tietorakenteet ja algoritmit Erilliskoe 5.1.01, malliratkaisut (Jyrki Kivinen) 1. [1 pistettä] (a) Esitä algoritmi, joka poistaa kahteen suuntaan linkitetystä järjestämättömästä tunnussolmullisesta
LisätiedotAlgoritmit 1. Luento 10 Ke Timo Männikkö
Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut
58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille
Lisätiedot811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu
1312A Tietorakenteet ja algoritmit, 2016-2017, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,
LisätiedotBinäärihaun vertailujärjestys
Järjestetyn sanakirjan tehokas toteutus: binäärihaku Binäärihaku (esimerkkikuassa aain = nimi) op Eea 5 op 5 op op 8 op 5 6 7 8 op Eea 5 op 5 op op 8 op 5 6 7 8 op Eea 5 op 5 op op 8 op 5 6 7 8 op Eea
Lisätiedot3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.
3. Hakupuut Hakupuu on listaa tehokkaampi dynaamisen joukon toteutus. Erityisesti suurilla tietomäärillä hakupuu kannattaa tasapainottaa, jolloin päivitysoperaatioista tulee hankalampia toteuttaa mutta
LisätiedotTehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003
Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja
Lisätiedot1.1 Tavallinen binäärihakupuu
TIE-20100 Tietorakenteet ja algoritmit 1 1 Puurakenteet http://imgur.com/l77fy5x Tässä luvussa käsitellään erilaisia yleisiä puurakenteita. ensin käsitellään tavallinen binäärihakupuu sitten tutustutaan
LisätiedotAlgoritmit 2. Demot Timo Männikkö
Algoritmit 2 Demot 1 27.-28.3.2019 Timo Männikkö Tehtävä 1 (a) 4n 2 + n + 4 = O(n 2 ) c, n 0 > 0 : 0 4n 2 + n + 4 cn 2 n n 0 Vasen aina tosi Oikea tosi, jos (c 4)n 2 n 4 0, joten oltava c > 4 Kokeillaan
LisätiedotAlgoritmit 1. Luento 9 Ti Timo Männikkö
Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward
Lisätiedot7. Tasapainoitetut hakupuut
7. Tasapainoitetut hakupuut Tässä luvussa jatketaan järjestetyn sanakirjan tarkastelua esittämällä kehittynyt puutietorakenne. Luvussa 7.1. esitetään monitiehakupuun käsite. Se on järjestetty puu, jonka
Lisätiedot58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen)
58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen) 1. Lisäysjärjestämisessä järjestetään ensin taulukon kaksi ensimmäistä lukua, sitten kolme ensimmäistä lukua, sitten neljä ensimmäistä
Lisätiedot811312A Tietorakenteet ja algoritmit II Perustietorakenteet
811312A Tietorakenteet ja algoritmit 2017-2018 II Perustietorakenteet Sisältö 1. Johdanto 2. Pino 3. Jono 4. Lista 811312A TRA, Perustietorakenteet 2 II.1. Johdanto Tietorakenne on tapa, jolla algoritmi
LisätiedotAlgoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö
Algoritmit 1 Luento 14 Ke 25.2.2015 Timo Männikkö Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit
Lisätiedotprivate TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;
Tietorakenteet, laskuharjoitus 7, ratkaisuja 1. Opiskelijarekisteri-luokka saadaan toteutetuksi käyttämällä kahta tasapainotettua binäärihakupuuta. Toisen binäärihakupuun avaimina pidetään opiskelijoiden
Lisätiedot4. Joukkojen käsittely
4 Joukkojen käsittely Tämän luvun jälkeen opiskelija osaa soveltaa lomittuvien kasojen operaatioita tuntee lomittuvien kasojen toteutuksen binomi- ja Fibonacci-kasoina sekä näiden totetutusten analyysiperiaatteet
Lisätiedotlähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa
Kekolajittelu Prioriteettijonolla toteutettu keko InsertItem ja RemoveMinElem: O(log(n)) Lajittelu prioriteettijonolla: PriorityQueueSort(lajiteltava sekvenssi S) alusta prioriteettijono P while S.IsEmpty()
Lisätiedot811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu
1312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,
LisätiedotKierros 4: Binäärihakupuut
Kierros 4: Binäärihakupuut Tommi Junttila Aalto University School of Science Department of Computer Science CS-A1140 Data Structures and Algorithms Autumn 2017 Tommi Junttila (Aalto University) Kierros
LisätiedotAlgoritmit 2. Luento 10 To Timo Männikkö
Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien
LisätiedotAlgoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö
Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu
Lisätiedot811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut
811312A Tietorakenteet ja algoritmit 2018-2019 V Hash-taulukot ja binääriset etsintäpuut Sisältö 1. Hash-taulukot 2. Binääriset etsintäpuut 811312A TRA, Hash-taulukot, binääripuut 2 V.1 Hash-taulukot Käytetään
LisätiedotCS-A1140 Tietorakenteet ja algoritmit
CS-A1140 Tietorakenteet ja algoritmit Kierros 4: Binäärihakupuut Tommi Junttila Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Syksy 2016 Sisältö Binäärihakupuut Avainten lisääminen,
LisätiedotAlgoritmit 2. Luento 11 Ti Timo Männikkö
Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento
LisätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019
LisätiedotAlgoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
Lisätiedot58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)
58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe 12.9.2018 ratkaisuja (Jyrki Kivinen) 1. [10 pistettä] Iso-O-merkintä. (a) Pitääkö paikkansa, että n 3 + 5 = O(n 3 )? Ratkaisu: Pitää paikkansa.
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli
LisätiedotPaikkatiedon käsittely 5. Paikkatiedon indeksointi
HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 5. Paikkatiedon indeksointi Antti Leino antti.leino@cs.helsinki.fi 29.1.2007 Tietojenkäsittelytieteen laitos Mistä
LisätiedotKoe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min
Koe Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min Kokeessa saa olla mukana A4:n kokoinen kaksipuolinen käsiten tehty, itse kirjoitettu lunttilappu 1 Tärkeää ja vähemmäntärkeää Ensimmäisen
LisätiedotAlgoritmit 2. Luento 9 Ti Timo Männikkö
Algoritmit 2 Luento 9 Ti 19.4.2016 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutus Verkon 3-väritys Algoritmit 2 Kevät 2016 Luento 9 Ti 19.4.2016
LisätiedotAlgoritmit 1. Luento 11 Ti Timo Männikkö
Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017
LisätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotAlgoritmit 2. Luento 12 To Timo Männikkö
Algoritmit 2 Luento 12 To 3.5.2018 Timo Männikkö Luento 12 Geneettiset algoritmit Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Algoritmit 2 Kevät 2018 Luento 12 To 3.5.2018 2/35 Algoritmien
LisätiedotTietorakenteet, laskuharjoitus 6,
Tietorakenteet, laskuharjoitus, 23.-2.1 1. (a) Kuvassa 1 on esitetty eräät pienimmistä AVL-puista, joiden korkeus on 3 ja 4. Pienin h:n korkuinen AVL-puu ei ole yksikäsitteinen juuren alipuiden keskinäisen
LisätiedotAlgoritmit 2. Luento 11 Ti Timo Männikkö
Algoritmit 2 Luento 11 Ti 25.4.2017 Timo Männikkö Luento 11 Peruutusmenetelmä Osajoukon summa Pelipuut Pelipuun läpikäynti Rajoitehaku Kapsäkkiongelma Algoritmit 2 Kevät 2017 Luento 11 Ti 25.4.2017 2/29
LisätiedotUnion-find-delete-algoritmien vertailua. Sari Itäluoma
Union-find-delete-algoritmien vertailua Sari Itäluoma Tampereen yliopisto Informaatiotieteiden yksikkö Tietojenkäsittelyoppi Pro gradu -tutkielma Ohjaaja: Erkki Mäkinen Kesäkuu 2015 Tampereen yliopisto
LisätiedotAlgoritmit 2. Luento 12 Ke Timo Männikkö
Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit
LisätiedotD B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa
Poistot Alkuperäisen B+ -puun idean mukaisesti tasapainotusta tehdään myös poistossa 50 Jos datasivun täyttösuhde laskee alle puoleen ja sivun ja sen velisivun (sibling, saman isäsivun alla oleva vierussivu)
LisätiedotHakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1
Hakemistorakenteet R & G Chapter 10 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hakemistotyypeistä Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta
LisätiedotHakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta
Hakemistotyypeistä Hakemistorakenteet R & G Chapter 10 Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta tai tietuejoukosta tuotettu tunnus yleensä
LisätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 8.5.2018 Timo Männikkö Luento 13 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys Kertaus ja tenttivinkit Algoritmit 2 Kevät
LisätiedotD B. Harvat hakemistot. Harvat hakemistot
Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut) kohti Harvan hakemiston
LisätiedotAlgoritmit 1. Luento 2 Ke Timo Männikkö
Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät
LisätiedotTarkennamme geneeristä painamiskorotusalgoritmia
Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, 25.2.2013, vastauksia 1. (a) O-merkintä Ω-merkintä: Kyseessä on (aika- ja tila-) vaativuuksien kertalukumerkinnästä. O-merkintää käytetään ylärajan
LisätiedotKuva 1: J+-puun rakenne [HXS09].
Johdanto Tietotekniikka on kehittynyt viime vuosikymmenten aikana nopeata vauhtia. Tämä on näkynyt niin tietokoneiden tehoissa kuin myös hinnoissa. Myös tietokoneiden keskusmuistit ovat kasvaneet ja ovat
Lisätiedot811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu
832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa
LisätiedotAlgoritmit 2. Luento 8 To Timo Männikkö
Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät
LisätiedotLisätään avainarvo 6, joka mahtuu lehtitasolle:
Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle
LisätiedotB-puu. 3.3 Dynaamiset hakemistorakenteet
Tietokannan hallinta 2 3. Tietokannan hakemistorakenteet 3.3 Dynaamiset hakemistorakenteet Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.
LisätiedotTiraka, yhteenveto tenttiinlukua varten
Tiraka, yhteenveto tenttiinlukua varten TERMEJÄ Tietorakenne Tietorakenne on tapa tallettaa tietoa niin, että tietoa voidaan lisätä, poistaa, muokata ja hakea. Tietorakenteet siis säilövät tiedon niin,
LisätiedotAlgoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö
Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
Lisätiedot14 Tasapainotetut puurakenteet
TIE-20100 Tietorakenteet ja algoritmit 308 14 Tasapainotetut puurakenteet Binäärihakupuu toteuttaa kaikki dynaamisen joukon operaatiot O(h) ajassa Kääntöpuolena on, että puu voi joskus litistyä listaksi,
LisätiedotSekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen
Sekvenssi Sekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Timo Esim. pino, jono ja kaksiloppuinen jono ovat sekvenssin erikoistapauksia sekvenssejä, jotka kohdistavat operaationsa ensimmäiseen/viimeiseen
LisätiedotKäsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.
Tietokannan hallinta 35 3. Tietokannan 3.3 Dynaamiset Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa. Ajan mittaan epätasapainoa:
Lisätiedot811312A Tietorakenteet ja algoritmit III Lajittelualgoritmeista
811312A Tietorakenteet ja algoritmit 2016-2017 III Lajittelualgoritmeista Sisältö 1. Johdanto 2. Pikalajittelu 3. Kekolajittelu 4. Lajittelualgoritmien suorituskyvyn rajoista 811312A TRA, Lajittelualgoritmeista
Lisätiedot58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)
58131 Tietorakenteet Erilliskoe 11.11.2008, ratkaisuja (Jyrki Kivinen) 1. (a) Koska halutaan DELETEMAX mahdollisimman nopeaksi, käytetään järjestettyä linkitettyä listaa, jossa suurin alkio on listan kärjessä.
LisätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 2 1.-2.2.2017 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: laskesumma(t, n) sum = t[0]; for (i = 1; i < n; i++) sum = sum + t[i]; return sum; Silmukka suoritetaan n 1 kertaa
LisätiedotAlgoritmit 2. Luento 14 To Timo Männikkö
Algoritmit 2 Luento 14 To 2.5.2019 Timo Männikkö Luento 14 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydelliset ongelmat Kertaus ja tenttivinkit Algoritmit
Lisätiedot811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta
811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta jälkiosasta IV Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden aikakompleksisuus
LisätiedotTKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto
Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan
LisätiedotFibonacci-kasoilla voidaan toteuttaa samat operaatiot kuin binomikasoilla.
4.2 Fibonacci-kasat Fibonacci-kasoilla voidaan toteuttaa samat operaatiot kuin binomikasoilla. Pääsiallinen ero on, että paljon Decrease-Key-operaatioita sisältävät jonot nopeutuvat. Primin algoritmi pienimmälle
LisätiedotAlgoritmit 2. Luento 10 To Timo Männikkö
Algoritmit 2 Luento 10 To 11.4.2019 Timo Männikkö Luento 10 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutusmenetelmä Osajoukon summa Algoritmit 2 Kevät 2019 Luento 10 To
LisätiedotAlgoritmit 1. Luento 13 Ma Timo Männikkö
Algoritmit 1 Luento 13 Ma 26.2.2018 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
LisätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys
LisätiedotAlgoritmi on periaatteellisella tasolla seuraava:
Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S
Lisätiedot