9 Erilaisia tapoja järjestää
|
|
- Pauliina Lehtonen
- 4 vuotta sitten
- Katselukertoja:
Transkriptio
1 TIE Tietorakenteet ja algoritmit Erilaisia tapoja järjestää Käsitellään seuraavaksi järjestämisalgoritmeja, jotka perustuvat muihin kuin vertailuun alkioiden oikean järjestyksen saamiseksi. Lisäksi tutkitaan vertailuun perustuvien algoritmien parasta mahdollista tehokkuutta. Lopuksi mietitään hieman algoritmin valintaan vaikuttavia tekijöitä.
2 TIE Tietorakenteet ja algoritmit Muita järjestämisalgoritmeja Kaikki tähän mennessä käsitellyt järjestämisalgoritmit perustuvat vertailemiseen. Ne hankkivat tietoa oikeasta järjestyksestä vain vertaamalla alkioita keskenään. Järjestämisen apuna on kuitenkin toisinaan mahdollista käyttää muutakin informaatiota kuin vertailun tuottamaa.
3 TIE Tietorakenteet ja algoritmit 200 Järjestäminen laskemalla Oletetaan, että alkioiden avainten arvoalue on pieni, enintään alkioiden määrän suuruusluokkaa. Yksinkertaisuuden vuoksi oletamme, että järjestettävien alkioiden avaimet ovat peräisin joukosta {1, 2,..., k}, ja k = O(n). Kullekin avaimelle lasketaan, kuinka monella alkiolla on kyseinen avain. Tuloksen perusteella siirretään alkiot suoraan lopullisille paikoilleen.
4 TIE Tietorakenteet ja algoritmit 201 COUNTING-SORT(A, B, k) 1 for i := 1 to k do 2 C[ i ] := 0 (alustetaan aputaulukko C nollilla) 3 for j := 1 to A.length do 4 C[ A[ j ].key ] := C[ A[ j ].key ] + 1 (lasketaan monenko alkion avain = i) 5 for i := 2 to k do 6 C[ i ] := C[ i ] + C[ i 1 ] (lasketaan monenko alkion avain i) 7 for j := A.length downto 1 do (käydään taulukko läpi lopusta alkuun) 8 B[ C[ A[ j ].key ] ] := A[ j ] (sijoitetaan alkio paikalleen tulostaulukkoon) 9 C[ A[ j ].key ] := C[ A[ j ].key ] 1(seuraava oikea paikka on pykälän vasemmalla) Algoritmi asettelee alkiot oikeille paikoilleen käänteisessä järjestyksessä vakauden varmistamiseksi.
5 TIE Tietorakenteet ja algoritmit 202 Suoritusaika: Ensimmäinen ja kolmas for-silmukka kuluttavat aikaa Θ(k). Toinen ja viimeinen for-silmukka kuluttavat aikaa Θ(n). Ajoaika on Θ(n + k). Jos k = O(n), ajoaika on Θ(n). Kaikki perusoperaatiot ovat yksinkertaisia, ja niitä on kussakin silmukassa vähän, joten ajoajan vakiokerroin on pieni. COUNTING-SORTIA ei kannata käyttää, jos k n. Algoritmin muistinkulutus on Θ(k). Tavallisesti k n. esimerkiksi: kaikki mahdolliset henkilötunnukset TTY:n henkilökunnan henkilötunnukset
6 TIE Tietorakenteet ja algoritmit 203 Järjestäminen moniosaisella avaimella Toisinaan järjestettävä avain on moniosainen tenttituloslista ensin koulutusohjelmittain, sitten aakkosjärjestyksessä sukunimen mukaan. päiväykset ensin vuoden, sitten kuukauden ja sitten päivän mukaan. korttipakka ensin maan, sitten numeron mukaan. Kirjan hakemisto ensin hakusanoittain aakkosjärjestykseen, sitten hakusanojen alakäsitteet sivujärjestyksessä.
7 TIE Tietorakenteet ja algoritmit 204 Eriarvoiset kriteerit huomioidaan siten, että: eniten merkitsevä kriteeri, jonka mukaan alkiot ovat erilaiset, ratkaisee vertailun tuloksen. jos alkiot ovat kaikkien kriteerien mukaan yhtä suuret, ne katsotaan kokonaan yhtä suuriksi. Ongelma voidaan ratkaista vertailuun perustuvan algoritmin avulla käyttämällä tilanteeseen sopivaa vertailua, esimerkiksi päiväysten vertailu: DATE-COMPARE(x, y) 1 if x.year < y.year then return smaller 2 if x.year > y.year then return greater 3 if x.month < y.month then return smaller 4 if x.month > y.month then return greater 5 if x.day < y.day then return smaller 6 if x.day > y.day then return greater 7 return equal
8 TIE Tietorakenteet ja algoritmit 205 Toisinaan on kuitenkin tarkoituksenmukaista käsitellä aineisto kriteeri kerrallaan. Esimerkiksi korttipakka on helpointa lajitella ensin neljäksi kasaksi maittain, ja sitten jokainen kasa erikseen. Tällöin merkitsevien kriteerien arvoalue on usein pieni verrattuna alkioiden määrään COUNTING-SORT on käyttökelpoinen.
9 TIE Tietorakenteet ja algoritmit 206 Moniosaisen avaimen mukaan järjestämiseen on kaksi erilaista algoritmia. LSD-RADIX-SORT järjestetään taulukko ensin vähiten merkitsevän numeron mukaan, sitten seuraavaksi vähiten merkitsevän mukaan jne. vaatii vakaan järjestelyalgoritmin - muutenhan taulukko olisi lopuksi järjestyksessä ainoastaan eniten merkitsevän kriteerin mukaan vertailuun perustuvia algoritmeja ei kannata käyttää, koska ne järjestäisivät taulukon suunnilleen samalla vaivalla kaikkien kriteerien mukaan kerralla sopiva järjestysalgoritmi on COUNTING-SORT LSD-RADIX-SORT(A, d) 1 for i := 1 to d do (käydään kriteerit läpi vähiten merkitsevästä lähtien) 2 järjestä A jollain vakaalla järjestämisalgoritmilla kriteerin i mukaan
10 TIE Tietorakenteet ja algoritmit 207 MSD-RADIX-SORT järjestetään taulukko ensin eniten merkitsevän numeron mukaan, ja samanarvoisten alkioiden osataulukot tarvittaessa seuraavaksi merkitsevän numeron mukaan jne. ei vaadi järjestysalgoritmilta vakautta käyttökelpoinen esimerkiksi mahdollisesti erimittaisia merkkijonoja järjestettäessä tarkastaa kriteerejä ainoastaan siihen asti kun järjestämisen vuoksi on tarpeen LSD-RADIX-SORTIA monimutkaisempi toteuttaa emme esitä sille algoritmia tässä
11 TIE Tietorakenteet ja algoritmit 208 RADIX-SORTIN ajankulutus, kun apuna on COUNTING-SORT: järjestäminen yhden kriteerin mukaan: Θ(n + k) kriteerejä on kaikkiaan d kpl kokonaisaika Θ(dn + dk) k on yleensä vakio kokonaisaika Θ(dn), tai Θ(n), jos d:kin vakio RADIX-SORT näyttäisi siis tietyin edellytyksin olevan O(n) järjestämisalgoritmi. Onko se yleisessä tapauksessa vertailuun perustuvia algoritmeja parempi?
12 TIE Tietorakenteet ja algoritmit 209 Järjestämisalgoritmin suorituskykyä tarkasteltaessa on järkevää olettaa, että kaikki (tai ainakin useimmat) alkiot ovat erisuuria. Esimerkiksi INSERTION-SORT on O(n), jos kaikki alkiot ovat saman suuruisia. Jos kaikki alkiot ovat erisuuria, ja yhden kriteerin arvoalueen koko on vakio k, niin k d n d log k n = Θ(lg n) RADIX-SORT on Θ(dn) = Θ(n lg n), jos oletetaan, että alkiot ovat enimmäkseen eri suuria. RADIX-SORT on asymptoottisesti yhtä hidas kuin muutkin hyvät järjestämisalgoritmit. Jos oletetaan vakio d, niin RADIX-SORT on Θ(n), mutta silloin isoilla n:n arvoilla useimmat alkiot ovat samoja.
13 TIE Tietorakenteet ja algoritmit 210 RADIX-SORTIN etuja ja haittoja Etuja: RADIX-SORT on nopeutensa puolesta kilpailukykyinen esimerkiksi QUICKSORTIN kanssa jos avaimet ovat esimerkiksi 32-bittisiä lukuja, ja taulukko järjestetään 8 bitin mukaan kerrallaan k = 2 8 ja d = 4 COUNTING-SORTia kutsutaan neljästi RADIX-SORT sopii hyvin moniosaisen avaimen mukaan järjestämiseen, kun avaimen osilla on pieni arvoalue. esim. tekstitiedoston järjestäminen annetuilla sarakkeilla olevien merkkien mukaan (vrt. Unix tai MS/DOS sort) Haittoja: COUNTING-SORT tarvitsee toisen n:n mittaisen taulukon B, johon se rakentaa lopputuloksensa sekä k:n kokoisen aputaulukon. Sen apumuistin tarve on siis Θ(n), eli merkittävästi suurempi kuin esimerkiksi QUICKSORTilla ja HEAPSORTilla.
14 TIE Tietorakenteet ja algoritmit 211 Bucket sort Oletetaan, että avaimet kuuluvat tunnetulle välille, ja avainten arvot ovat jakautuneet tasan. Jokainen avaimen arvo yhtä todennäköinen. Esimerkin vuoksi oletamme, että avainten arvot sijoittuvat nollan ja ykkösen välille. Otetaan käyttöön n ämpäriä (bucket) B[ 0 ]... B[ n 1 ]. BUCKET-SORT(A) 1 n := A.length 2 for i := 1 to n do (käydään kaikki alkiot läpi) 3 INSERT(B[ n A[i] ], A[i]) (heitetään alkio oikeaan ämpäriin) 4 k := 1 (aloitetaan taulukon täyttäminen kohdasta 1) 5 for i := 0 to n 1 do (käydään ämpärit läpi) 6 while B[ i ] ei ole tyhjä do (tyhjennetään epätyhjät ämpärit...) 7 A[ k ] := EXTRACT-MIN(B[ i ]) (... siirtämällä alkiot pienimmästä alkaen...) 8 k := k + 1 (... oikeaan kohtaan tulostaulukkoa)
15 TIE Tietorakenteet ja algoritmit 212 Ämpäreiden toteutus: Tarvitaan operaatiot INSERT ja EXTRACT-MIN. Ämpäri on itse asiassa prioriteettijono. Ämpärien koko vaihtelee suuresti. yleensä ämpärin alkioiden määrä 1 kuitenkin jopa kaikki alkiot voivat joutua samaan ämpäriin kekoon perustuvan toteutuksen tulisi varata muistia Θ(n) jokaiselle ämpärille, yhteensä Θ(n 2 ) Toisaalta toteutuksen ei tarvitse olla kovin nopea suurille ämpäreille, koska niitä syntyy harvoin. Käytännössä ämpärit kannattaa toteuttaa listoina. INSERT linkittää tulevan alkion oikealle paikalleen listaan, aikaa kuluu Θ(listan pituus) EXTRACT-MIN poistaa ja palauttaa listan ensimmäisen, aikaa kuluu Θ(1)
16 TIE Tietorakenteet ja algoritmit 213 BUCKET-SORTIN keskimääräinen suorituskyky: Oletimme, että avainten arvot ovat jakautuneet tasan. Yhteen ämpäriin tulee siis keskimäärin yksi alkio, ja hyvin harvoin paljoa enempää. Ensimmäinen for-silmukka käy kaikki alkiot läpi, Θ(n). Toinen for-silmukka käy kaikki ämpärit läpi, Θ(n). while-silmukka käy kaikilla kierroksillaan yhteensä kaikki alkiot läpi kerran, Θ(n). INSERT on keskimäärin vakioaikainen, koska ämpärissä on keskimäärin yksi alkio. EXTRACT-MIN on vakioaikainen. Kokonaisaika on keskimäärin Θ(n). Hitaimmassa tapauksessa kaikki alkiot joutuvat samaan ämpäriin ja tulevat suuruusjärjestyksessä. INSERT kuluttaa lineaarisesti aikaa Kokonaisaika on pahimmillaan Θ(n 2 ).
17 TIE Tietorakenteet ja algoritmit Kuinka nopeasti voi järjestää? Taulukon järjestäminen itse asiassa tuottaa sen permutaation, joka tekee alkuperäisestä taulukosta täysin järjestetyn taulukon. Jos taulukon kaikki alkiot ovat erisuuret, ko. permutaatio on yksikäsitteinen. Järjestäminen vastaa kyseisen permutaation etsintää kaikkien mahdollisten permutaatioiden joukosta Esimerkiksi INSERTION-SORT, MERGE-SORT, HEAPSORT ja QUICKSORT perustuvat vertailemiseen. Ne hankkivat tietoa oikeasta permutaatiosta vain vertaamalla alkioita keskenään. Mikä on pienin määrä vertailuja, joka riittää takaamaan oikean permutaation löytymisen?
18 TIE Tietorakenteet ja algoritmit 215 n:n erisuuren alkion taulukolla on n eli n! permutaatiota. Vertailuja on suoritettava niin monta, että ainut oikea vaihtoehto tulee poimituksi niiden joukosta. Jokainen vertailu A[ i ] A[ j ] (tai A[ i ] < A[ j ]) jakaa permutaatiot kahteen ryhmään: ne, joissa A[ i ]:n ja A[ j ]:n keskinäinen järjestys on vaihdettava, ja ne, joissa ei ole, joten... yksi vertailu riittää poimimaan ainoan oikean vaihtoehdon enintään kahdesta kaksi vertailua riittää poimimaan ainoan oikean vaihtoehdon enintään neljästä... k vertailua riittää poimimaan ainoan oikean vaihtoehdon enintään 2 k :stä oikean poimimiseen x:stä vaihtoehdosta tarvitaan ainakin lg x vertailua
19 TIE Tietorakenteet ja algoritmit 216 Jos taulukon koko on n, niin permutaatiota on n! Vertailuja on suoritettava ainakin lg n! kappaletta. vertailemiseen perustuva järjestämisalgoritmi joutuu käyttämään Ω( lg n! ) aikaa. Paljonko on lg n!? lg n! lg n! = n k=1 lg k n k= n 2 lg n 2 n 2 lg n 2 = 1 2 n lg n 1 2 n = Ω(n lg n) Ω(n) = Ω(n lg n) toisaalta lg n! < n lg n + 1 = O(n lg n) lg n! = Θ(n lg n)
20 TIE Tietorakenteet ja algoritmit 217 Jokainen vertailemiseen perustuva järjestämisalgoritmi joutuu siis käyttämään hitaimmassa tapauksessa Ω(n lg n) aikaa. Toisaalta HEAPSORT ja MERGE-SORT ovat hitaimmassakin tapauksessa O(n lg n). Vertailemiseen perustuva järjestäminen on mahdollista hitaimmassa tapauksessa ajassa Θ(n lg n), mutta ei yhtään nopeammin. HEAPSORT ja MERGE-SORT ovat hitaimman tapauksen ajan kulutukseltaan asymptoottisesti optimaalisia. Järjestäminen on aidosti asymptoottisesti työläämpää kuin esim. mediaanin etsintä, joka onnistuu hitaimmassakin tapauksessa ajassa O(n).
1 Erilaisia tapoja järjestää
TIE-20100 Tietorakenteet ja algoritmit 1 1 Erilaisia tapoja järjestää Käsitellään seuraavaksi järjestämisalgoritmeja, jotka perustuvat muihin kuin vertailuun alkioiden oikean järjestyksen saamiseksi. Lisäksi
LisätiedotTämä on helpompi ymmärtää, kun tulkitaan keko täydellisesti tasapainotetuksi binääripuuksi, jonka juuri on talletettu taulukon paikkaan
TIE-20100 Tietorakenteet ja algoritmit 178 Keko Taulukko A[1... n] on keko, jos A[i] A[2i] ja A[i] A[2i + 1] aina kun 1 i n 2 (ja 2i + 1 n). Tämä on helpompi ymmärtää, kun tulkitaan keko täydellisesti
Lisätiedot4 Tehokkuus ja algoritmien suunnittelu
TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin
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ä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 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. 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ätiedot5 Kertaluokkamerkinnät
TIE-20100 Tietorakenteet ja algoritmit 75 5 Kertaluokkamerkinnät Tässä luvussa käsitellään asymptoottisessa analyysissa käytettyjä matemaattisia merkintätapoja Määritellään tarkemmin Θ, sekä kaksi muuta
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ätiedotf(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))
Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia
Lisätiedot1 Puu, Keko ja Prioriteettijono
TIE-20100 Tietorakenteet ja algoritmit 1 1 Puu, Keko ja Prioriteettijono Tässä luvussa käsitellään algoritmien suunnitteluperiaatetta muunna ja hallitse (transform and conquer) Lisäksi esitellään binääripuun
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 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 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 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ätiedotTIE Tietorakenteet ja algoritmit 25
TIE-20100 Tietorakenteet ja algoritmit 25 Tällä kurssilla keskitytään algoritmien ideoihin ja algoritmit esitetään useimmiten pseudokoodina ilman laillisuustarkistuksia, virheiden käsittelyä yms. Otetaan
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ä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ä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ä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. Demot Timo Männikkö
Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava
LisätiedotTietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:
Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] = = T [i + 1] 4 return True 5
LisätiedotOlkoon S(n) kutsun merge-sort(a, p, q) tilavaativuus kun p q + 1 = n. Oletetaan merge toteutetuksi vakiotyötilassa (ei-triviaalia mutta mahdollista).
Esimerkki Lomitusjärjestäminen merge-sort(a, p, q): var k % paikallinen muuttuja, vakiotila 1. if p < q then 2. r := (p + q)/2 3. merge-sort(a, p, r) 4. merge-sort(a, r + 1, q) 5. merge(a, p, r, q) Olkoon
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ä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ätiedotuseampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero
Alkioiden avaimet Usein tietoalkioille on mielekästä määrittää yksi tai useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero 80 op
LisätiedotMukautuvat järjestämisalgoritmit
1 Mukautuvat järjestämisalgoritmit Riku Saikkonen TIK-päivä, 17. 1. 2013 2 Mukautuva järjestäminen minkä tahansa vertailuihin perustuvan järjestämisalgoritmin täytyy tehdä pahimmassa tapauksessa vähintään
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ätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku
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ätiedot811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu
811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään
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 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ätiedotja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2
Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,
LisätiedotA TIETORAKENTEET JA ALGORITMIT
A274105 TIETORAKENTEET JA ALGORITMIT HARJOITUSTEHTÄVÄT 6 DEADLINE 1.4.2009 KLO 9:00 Kynätehtävät tehdään kirjallisesti ja esitetään harjoituksissa. Välivaiheet näkyviin! Ohjelmointitehtävät sähköisesti
Lisätiedot9.3 Algoritmin valinta
TIE-20100 Tietorakenteet ja algoritmit 218 9.3 Algoritmin valinta Merkittävin algoritmin valintaan vaikuttava tekijä on yleensä sen suorituskyky käyttötilanteessa. Muitakin perusteita kuitenkin on: toteutuksen
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
Lisätiedot7.4 Sormenjälkitekniikka
7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan
LisätiedotTietorakenteet ja algoritmit. Järjestäminen. Ari Korhonen
Tietorakenteet ja algoritmit Järjestäminen Ari Korhonen 6.10.2015 1 6. Järjestäminen (sor0ng) 6.1 Johdanto 6.2 Yksinkertaiset menetelmät 6.2.1 Valintajärjestäminen 6.2.2 Lisäysjärjestäminen 6.3 Lomitusjärjestäminen
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ätiedotA TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT LISÄÄ JÄRJESTÄMISESTÄ JÄRJESTÄMISEN TEORIAA Inversio taulukossa a[] on lukupari (a[i],a[j]) siten, että i < j mutta a[i] > a[j] Esimerkki Taulukko a[] = [2, 4, 1, 3]
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ätiedotOn annettu jono lukuja tai muita alkioita, joiden välille on määritelty suuruusjärjestys. Tehtävänä on saattaa alkiot suuruusjärjestykseen.
6. Järjestäminen On annettu jono lukuja tai muita alkioita, joiden välille on määritelty suuruusjärjestys. Tehtävänä on saattaa alkiot suuruusjärjestykseen. Tämä on eräs klassisimpia tietojenkäsittelyongelmia,
Lisätiedot1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:
Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return
Lisätiedot13 Lyhimmät painotetut polut
TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien
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ätiedot811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta
811312A Tietorakenteet ja algoritmit 2017-2018 Kertausta kurssin alkuosasta II Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden
LisätiedotAlgoritmit 2. Demot Timo Männikkö
Algoritmit 2 Demot 4 24.-25.4.2019 Timo Männikkö Tehtävä 1 (a) int laske(n) { if (n
LisätiedotAlgoritmit 2. Luento 1 Ti Timo Männikkö
Algoritmit 2 Luento 1 Ti 14.3.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin valinta Algoritmin analysointi Algoritmin suoritusaika Peruskertaluokkia Kertaluokkamerkinnät Kertaluokkien ominaisuuksia
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ä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ä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ä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ätiedot8. Lajittelu, joukot ja valinta
8. Lajittelu, joukot ja valinta Yksi tietojenkäsittelyn klassisista tehtävistä on lajittelu (järjestäminen) (sorting) jo mekaanisten tietojenkäsittelylaitteiden ajalta. Lajiteltua tietoa tarvitaan lukemattomissa
LisätiedotAlgoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja
58053-7 Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja Malliratkaisut ja pisteytysohje: Jyrki Kivinen Tentin arvostelu: Jouni Siren (tehtävät 1 ja 2) ja Jyrki Kivinen (tehtävät
LisätiedotOngelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
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ä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ätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
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ätiedotTietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
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ätiedotKierros 2: Järjestämisalgoritmeja
Kierros : Järjestämisalgoritmeja Tommi Junttila Aalto University School of Science Department of Computer Science CS-A4 Data Structures and Algorithms Autumn 7 Tommi Junttila (Aalto University) Kierros
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ätiedot811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta
811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta kurssin alkuosasta II Algoritmien analyysi: oikeellisuus Algoritmin täydellinen oikeellisuus = Algoritmi päättyy ja tuottaa määritellyn tuloksen
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ä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ä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ätiedotTietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, 652013, vastauksia 1 [6 pistettä] Vastaa jokaisesta alla olevasta väittämästä onko se tosi vai epätosi ja anna lyhyt perustelu Jokaisesta kohdasta
LisätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 2 7.-8.2.2018 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: etsipienin(t, n) { pnn = t[0]; for (i = 1; i < n; i++) { pnn = min(pnn, t[i]); return pnn; Silmukka suoritetaan
Lisätiedot1.4 Funktioiden kertaluokat
1.4 Funktioiden kertaluokat f on kertaluokkaa O(g), merk. f = O(g), jos joillain c > 0, m N pätee f(n) cg(n) aina kun n m f on samaa kertaluokkaa kuin g, merk. f = Θ(g), jos joillain a, b > 0, m N pätee
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ätiedotCS-A1140 Tietorakenteet ja algoritmit
CS-A1140 Tietorakenteet ja algoritmit Kierros 2: Järjestämisalgoritmeja Tommi Junttila Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Syksy 2016 Materiaali Kirjassa Introduction to Algorithms,
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. 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ätiedot(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.
Loppu seuraa suoralla laskulla: n n Tave TR = p j (1 + b (i, j)) j=1 = 1 + 1 i
LisätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT ALGORITMIEN ANALYYSISTÄ 1.ratkaisu Laskentaaika hakkeri - optimoitu ALGORITMIANALYYSIÄ hyvä algoritmi hakkeri -optimoitu hyvä algoritmi Tehtävän koko Kuva mukailtu
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ä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ä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 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ätiedotTIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit
TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen
LisätiedotVerkon värittämistä hajautetuilla algoritmeilla
Verkon värittämistä hajautetuilla algoritmeilla 5 12 30 19 72 34 Jukka Suomela 15 77 18 4 9. tammikuuta 2012 19 2 68 Verkko 2 Verkko solmu 3 Verkko solmu kaari 4 Hajautettu järjestelmä solmu (tietokone)
LisätiedotTietorakenteet, laskuharjoitus 3, ratkaisuja
Tietorakenteet, laskuharjoitus 3, ratkaisuja 1. (a) Toistolauseen runko-osassa tehdään yksi laskuoperaatio, runko on siis vakioaikainen. Jos syöte on n, suoritetaan runko n kertaa, eli aikavaativuus kokonaisuudessaan
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ä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ä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ä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ä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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotLiitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1
Liitosesimerkki 16.02.06 Tietokannan hallinta, kevät 2006, J.Li 1 Esim R1 R2 yhteinen attribuutti C T(R1) = 10,000 riviä T(R2) = 5,000 riviä S(R1) = S(R2) = 1/10 lohkoa Puskuritilaa = 101 lohkoa 16.02.06
LisätiedotLiitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot
Esim yhteinen attribuutti C Liitosesimerkki T() = 10,000 riviä T() = 5,000 riviä S() = S() = 1/10 lohkoa Puskuritilaa = 101 lohkoa 1 2 Vaihtoehdot Sisäkkäiset silmukat Liitosjärjestys:, Liitosalgoritmit:
LisätiedotLuku 8. Aluekyselyt. 8.1 Summataulukko
Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa
LisätiedotNumeeriset menetelmät
Numeeriset menetelmät Luento 4 To 15.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 4 To 15.9.2011 p. 1/38 p. 1/38 Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä matriisimuodossa Ax = b
Lisätiedot811312A Tietorakenteet ja algoritmit, , Harjoitus 4, Ratkaisu
81112A Tietoraketeet ja algoritmit, 217-218, Harjoitus 4, Ratkaisu Harjoitukse aiheita ovat algoritmie aikakompleksisuus ja lajittelualgoritmit Tehtävä 4.1 Selvitä seuraavie rekursioyhtälöide ratkaisuje
LisätiedotPikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin
Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin jaetaan muut alkiot kahteen ryhmään: L: alkiot, jotka eivät suurempia kuin pivot G : alkiot, jotka suurempia kuin pivot 6 1 4 3 7 2
LisätiedotA TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00
A274101 TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE 9.2.2005 KLO 12:00 PISTETILANNE: www.kyamk.fi/~atesa/tirak/harjoituspisteet-2005.pdf Kynätehtävät palautetaan kirjallisesti
Lisätiedot811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu
811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,
Lisätiedot