17 Søgning og Søgetræer.

Størrelse: px
Starte visningen fra side:

Download "17 Søgning og Søgetræer."

Transkript

1 17 Søgning og Søgetræer. Lineær og inær søgning i lister. inære søgetræer. Søgning efter knude i træ. Indsættelse af knude i træ. Søgning i og sortering af inært søgetræ. Sletning af knude i inært søgetræ. alanceringskriterier. VL-træer. Indsættelse af knude i VL-træer. Der er skrevet mange øger, som eandler søgning. Det er dog værd at fremæve én frem for alle andre: Knut, Te art of Computer Programming (vol 3), Sorting and Searcing, ddison- Wesley. Selv om ogen er relativ gammel (fra 1973), indeolder den meget grundige diskussioner (intuitive såvel som tekniske), algoritmer (i pseudokode såvel som i assemler) og analyser. 255

2 Søgning i lister og arrays. 1 n element 1 element n indekser elementer Lineær søgning i en liste. Elementerne i listen gennemsøges én for én (1, 2,...), indtil listen er gennemløet, eller søgeelementet er fundet. Køretid: O(n). inær søgning i et sorteret array. ntag at elementerne i array-et er ordnet i stigende rækkefølge. inær-søgning(: array, e: element): indeks if er tom ten returner ikke fundet elseif [midterste indeks] = e ten returner midterste indeks elseif e er mindre end midterste element ten returner inær-søgning(venstre-alvdel (), e) else returner inær-søgning(øjre-alvdel (), e) Køretid: O(log n). inær søgning er eandlet i afsnit i Weiss. Den inære søgning i Weiss i afsnit er programmeret iterativt, i modsætning til den rekursive formulering på denne slide. Lister kan enten implementeres som kædede lister eller ved rug af et array. Dette ar vi diskuteret i kapitlet om arrays og lister. Lineær søgning kan udføres næsten lige effektivt på kædede lister og array-aserede lister. Det er ikke effektivt at lave inær søgning på kædede lister. Årsagen er, at vi i inær søgning skal opsøge det midterste element i listen; i en kædet liste er dette relativt kostart, nemlig O(n). På denne slide ar vi derfor formuleret inær søgning på arrays. Tidskompleksiteten log(n) for inær søgning fremkommer ved, at vi alverer søgeintervallet i vert rekursivt kald. lgoritmer vil ofte i disse noter live vist på skitseform, i en Pascal-agtig notation. Det er dermed vores mål at sætte fokus på den algoritmiske ide frem for detaljer. Der envises til de enyttede læreøger for en mere præcis og fyldestgørende eskrivelse af algoritmerne. 256

3 inære søgetræer. Lad < være en total ordning af knuderne i et inært træ. Et inært træ T kaldes et søgetræ, vis der for alle knuder N i T gælder at for alle knuder L i N's venstre undertræ: L < N. for alle knuder i N's øjre undertræ: N < En total ordning af en mængde er en ordning < som involverer alle mængdens elementer, således at for to forskellige elementer a og i mængden gælder enten at a < eller < a. Endvidere skal < være transitiv. (Se også under kapitlet Sortering 1, slide Sorteringsprolemet (1), og sammenlign også med en partiel ordning, som vi omtalte i kapitlet Nedarvning II da vi studerende klassen PT_COMP). I eksemplet på denne slide er der vist et inært søgetræ vori knudernes nøgler er eltal. Ordningen mellem knuderne er estemt af ordningen mellem nøglerne. I dette tilfælde er ordningen afledt af den sædvanlige ordning "<" på eltal. I søgetræet vist ovenfor nøjes vi med at vise nøglerne i knuderne. I en realistisk situation vil der være forskellige andre data, som er knyttet til nøglen. Disse andre data vil vi kalde satellitinformation. Det er som regel satellit-informationen vi søger efter, givet vi ar kendska til nøglen. emærk, at der er nøgler og data i såvel indre knuder som i lade. Senere i kurset vil vi møde træer, vor indre knuder udelukkende udgør et indeks til data, som er gemt i ladene. Når vi taler om søgetræer er det vigtigt, at vi tager udgangspunkt i ordnede træer. inære træer er dog, pr. definition, altid ordnede. (Husk på, at dette etyder, at undertræerne af en knude er ordnede, se forelæsningen om træer). Hvis en knude i et inært søgetræ kun ar ét undertræ, er det endvidere vigtigt, at vi kan udnævne dette undertræ til enten at være det venstre eller det øjre undertræ. Opgave. Det er vigtigt at man via eksemplet liver fortroligt med definitionen af inære søgetræer. esvar derfor følgende spørgsmål: (1) Hvilke tal kan indsættes i stedet for knuden 34 i ovenstående træ, uden at ændre træets form? (2) Samme spørgsmål for knuden

4 Søgning i inært søgetræ i Eiffel as (v: like item): OOLEN is -- Is tere a node wit item v in te tree? -- Nodes are compared wit sallow equality. require item_exists: v /= Void do if equal(v, item) ten esult := true elseif v < item ten esult := not left_cild.void and ten left_cild.as (v) else esult := not rigt_cild.void and ten rigt_cild.as (v) end end På denne slide er funktionen as fra klassen INY_SECH_TEE vist. Has returnerer vorvidt dataelementet v findes i det inære søgetræ. Operationen er taget fra Eiffel ilioteket (version 2.3, og tilpasset til Eiffel 3). Typen af v er erklæret ved association til item, som er en anden feature i klassen INY_SECH_TEE. Se afsnit i "Eiffel te Language" angående sådanne typer. emærk også rugen af "and ten" i funktionen as. Det naturlige resultat af en søgning er enten true eller false, altså oolsk. Et mere nyttigt resultat er derimod void eller en reference til en knude i træet. (I nogle inærer søgetræes DT-er kan dette dog opfattes som et rud på den 'information iding' vi ønsker os, nemlig vis knuder er et internt egre, som vi ikke ønsker klienter af inære søgetræer skal kende til). Med det alternative resultat i ånden kan vi undersøge eller ændre træet på det sted, vortil søgningen ragte os. 258

5 Indsættelse af et element i et inært søgetræ. Indsæt(e: element, T: inært-søgetræ) if T ikke er tom ten if e < T.key ten Indsæt(e, venstre undertræ af T ) elseif e > T.key ten Indsæt(e, øjere undertræ af T ) else Indsæt en dulet af e i roden af T else Opret en ny knude K, som indeolder e ; Indsæt knuden K på T's plads Degenererede søgetræer: Et søgetræ kan udvikle sig til en enkeltkædet liste, vis elementerne indsættes i stigende eller faldende orden. Søgning i et inært søgetræ foregår elt analog til inær søgning i et ordnet array. Hvis man derimod skal indsætte eller slette elementer i samlingen, viser det sig, at inære søgetræer er overlegne i forold til inær søgning i et array. Mere konkret kan vi oservere, at køretiden for indsættelse af et nyt element i et ordnet array er O(n), vor n er antallet af elementer i array-et. Vi får samme dårlige tidskompleksitet ved indsættelse i en kædet liste, idet vi skal søge efter det korrekte indsættelsessted. Indsættelse af et nyt element i et alanceret inært søgetræ vil i køretid være O(log(n)). Dette ses ved at oservere, at antallet af eregningstrin, der er nødvendig for indsættelse af elementet, svarer til dyden af knuden K i ovenstående algoritme. Den maksimale dyde af K er træets øjde. Vi vender tilage til alanceringsprolematikken senere i denne forelæsning, vor vi også vil gøre det præcist, vad vi mener, når vi taler om et alanceret inært søgetræ. Det kan anefales at studere Eiffel implementationen af ovenstående indsættelsesoperation. Der envises til operationen put i klassen INY_SECH_TEE. 259

6 Sletning af et element i et inært søgetræ. Slet(e: element, T: inært-søgetræ): Find knuden K, som indeolder elementet e ; If K er et lad ten Slet K umiddelart elseif K ar netop ét undertræ U ten Lad roden af U indtage K s plads i T 1 2 else -- K ar netop to undertræer: Slet det største element x i K's venstre undertræ ; Erstat indoldet af K med x 3 Sletning af en knude i et inært søgetræ skal efterlade træet som et inært søgetræ. Lad os argumentere for, at ovenstående er korrekt, og at det efterlader træet som et inært søgetræ. Tilfælde 1 er oplagt, og tilfælde 2 er næsten lige så let. Når den slettede knude K kun ar ét undertræ U, vil alle knuderne i U opfylde ordnings-etingelserne i forold til (en evt) far af K. I tilfælde 3 erstatter vi K med en nøje udvalgt knude, som vi er vil kalde X. X kan vælges som knuden, der indeolder det største element i K's venstre undertræ. 1. X kan slettes fra træet, idet det enten er et lad, eller det ar netop et venstre undertræ. I modsat fald ville X ikke være det største element i K's venstre undertræ. 2. Måden vorpå vi sletter X fra træet falder altså under tilfælde 1 eller 2 i ovenstående algoritme. 3. X erstatter nu K. Vi skal overevise os om, at ordnings-relationerne mellem X og dens far v. ørn er opfyldt: 4. Hvis vi antager, at K var rod i øjre undertræ af sin far, ved vi at alle knuder i dette undertræ er større end K s far. Dette gælder også for X. ltså opfylder X etingelser ift. sin nye far. Tilsvarende argumenteres, vis K er rod i venstre undertræ. (Tænk over vad der gælder, vis K er rod i T). 5. X skal være større end alle knuder i sit nye venstre undertræ. Da X er udvalgt som det største element i dette undertræ, må alle andre elementer være mindre. 6. X skal endvidere være mindre end alle knuder i sit nye øjre undertræ. Men da alle knuder, og specielt X, i K's oprindelige venstre undertræ, var mindre end knuderne i K s øjre undertræ, er dette krav også opfyldt. X kunne alternativt være valgt som det mindste element i K's øjre undertræ. Køretiden af sletningen af et element er O(log n). Sletningen involverer (1) lokalisering af en knude samt (2) sletningen af knuden. idrag 1 koster O(log n). idrag 2 er i tilfældene 1 og 2 konstante, og i tilfælde 3 O(log n). lt dette under forudsætning af, at træet er alanceret. 260

7 alanceringskriterier for inære træer. Perfekt alance: Et inært træ T er perfekt alanceret vis der for enver knude N i T gælder at antal-knuder(venstre-undertræ(n)) - antal-knuder(øjre-undertræ(n)) <= 1. VL alance: Et inært træ T er alanceret efter VL-kriteriet, vis der for enver knude N i T gælder, at øjden(venstre-undertræ(n)) - øjden(øjre-undertræ(n)) <= 1. Vi ar set, at den attraktive, logaritmiske tidskompleksitet af søgning, indsættelse og sletning opnåes, vis træet er i en eller anden form for alance. Mere konkret kræves der, at træet ikke liver for øjt (se definitionen af øjden af et træ i forelæsningen om træer). åde vad angår søgning, indsættelse og sletning er tidskompleksiteten af operationerne egrænset af træets øjde. Vi ar indset, at i visse ueldigesituationer kan træet degenerere til en kædet liste, i vilket tilfælde træets øjde liver én mindre end antallet af knuder i træet. Givet et (evt. degenereret) inært søgetræ kan man transformere det til et perfekt alanceret søgetræ. Det er imidlertid mere interessant og nyttigt at lade det inære søgetræ overolde en invariant, der sikrer at træet på etvert tidspunkt (imellem træ-operationer) er alanceret. På de følgende slides vil vi se, vordan vi kan udforme en indsættelsesoperation, der opretolder VL alancen af det inære søgetræ. 261

8 Indsættelse et element i et VL-træ. Før indsættelse Indsættelse Efter indsættelse Tilfælde 1 Tilfælde 2 a L C c -1 d a c +1 På denne og følgende slide illustreres indsættelse af et nyt element i et inært søgetræ, der overolder VL-kriteriet. Et sådant træ vil vi kalde for et VL træ. Det øjde-forøgende element, som indsættes, er på figurerne indsat i de træer, der er tegnet med fede linier. Navne på knuder er med store ogstaver, og navne på (under)træer er med små ogstaver. Inde i træerne er angivet øjden af træerne, som en funktion af en variael. Vi kan uden ta af generalitet antage, at vi indsætter et øjde-forøgende element i 's øjre undertræ. Indsættelser i det venstre undertræ af er, naturligvis, symmetriske. Vi ønsker, at ualancen skal forekomme i knude. er altså roden i det dyeste undertræ, vori der forekommer VL ualance som følge af indsættelse af et element i træet. Tilfælde 1: Vi indsætter et øjdeforøgende element i 's venstre undertræ. Det venstre undertræ af vil være af øjde +1. Vi vil inkludere roden af 's venstre undertræ, og kalde denne knude for C. Ualancen opstår således enten ved, at der indsættes et øjdeforøgende element i det venstre undertræ () eller i det øjre undtræ (c) af C. Lad os er antage at øjdeforøgelsen sker i. (Det andet tilfælde er symmetrisk). Under denne antagelse ar c øjden -1. Højden af træet d er idet vi jo ar antaget, at øjdeforøgelsen sker i 's venstre undertræ, samt at ualancen forekommer i knuden, og ikke i. Tilfælde 2: Vi indsætter et øjde-forøgende element i 's øjre undertræ, som vi kalder c. Vi kunne naturligvis nuancere tegningen af c til at omfatte en knude (C) og to undertræer, men da den efterfølgende transformation ikke ændrer dette træ, er denne detalje i figuren unødvendig. Tilfælde 1 identificeres som L-tilfældet, idet ualancen set i forold til forekommer ved først at følge referencen fra til øjre (igt) undertræ, og dernæst følge referencen til venstre (Left) undertræ. f samme årsag identificeres tilfælde 2 som -tilfældet. De to tilfælde, vi ikke ar vist på denne slide, kaldes v. L og LL tilfældene. 262

9 a Tilfælde 1 Tilfælde 2 L C a d c -1 c +1 L-Transformation -Transformation C a c -1 d a c +1 (fortsat) Denne slide viser resultatet af transformationerne, ét for vert af de to tilfælde vi identificerede på den forrige slide. Øverst er vist de to træer, vi identificerede nederst på forrige slide. Husk igen på, at knuden er den dyeste knude i træet, vor vi ar identificeret et rud af VL alancekriteriet. emærk, at undertræerne af de tegnede knuder ikke ændres overovedet i transformationerne. Vi er således istand til at realisere transformationerne gennem nogle få manipulationer af referencer mellem knuder. Der er to ting vi skal sikre os, når vi etragter resultatet af en transformation: 1. Er ordningen af knuder og deltræer uforandret (med andre ord: er det transformerede træ et inært søgetræ med de samme knuder som det oprindelige træ). 2. Er alanceringskriteriet opfyldt for det transformerede træ (med andre ord: er det transformerede træ et VL-træ). I tilfælde 1 er in-order ordningen a C c d, såvel før som efter transformationen. I tilfælde 2 er in-order ordningen a c, såvel før som efter transformationen. Det er let at overevise sig om, at de resulterende træer er VL-træer. I en praktisk udformning af disse transformationer (ved programmeringen af operationer i træ- DTen) vil vi antage, at vi direkte kan aflæse alanceringen af et træ. Dette kan naturligvis gøres ved at lagre øjden af etvert undertræ i træet; det er dog smartere at lagre den relative alance af et træ, vilket fortæller, om træet ælder én til venstre, én til øjre, eller om det er i alance. Hvis vi sammenligner de transformerede træer med træet, som det så ud før indsættelsen, kan vi se, at disse træer alle er af øjde +2. Det medfører, at der ikke er flere knuder mellem det transformerede træ og roden, vori der forekommer VL ualance. Med andre ord, er det kun nødvendigt at foretage én transformation for at genoprette alancen for ele træet. 263

10 Sortering af ojekterne i et inært søgetræ. ntag at der er eov for åde effektiv søgning, indsættelse og sletning samt sortering af af en samling af data med total ordning. Samlingen af data repræsenteres som et alanceret inært søgetræ. Operation Søgning, indsættelse og sletning Sortering: in-order gennemlø af træet. Køretid O(log n). O(n). Den emærkelsesværdige tidskompleksitet af sorteringen eror naturligvis på, at data i et inært træ allerede er ordnede. Hvert element er omyggeligt indsat på sin rette plads i træet for en pris, der er i størrelsesordenen O(log n). Hvis vi derfor ønsker at sortere en samling af data ved (1) at opygge et inært søgetræ, og (2) at gennemløe træet, er tidskompleksiteten ikke edre end kendte, gode sorteringsalgoritmers tidskompleksitet. 264

18 Multivejstræer og B-træer.

18 Multivejstræer og B-træer. 18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.

Læs mere

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. 19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige

Læs mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Opgave 2 è20èè Det er velkendt, at f lgende algoritme er gyldig og korrekt. Algoritme: Heltalskvadratr Stimulans: n: nç0 Respons: r: r 2 ç n é èr +1è

Opgave 2 è20èè Det er velkendt, at f lgende algoritme er gyldig og korrekt. Algoritme: Heltalskvadratr Stimulans: n: nç0 Respons: r: r 2 ç n é èr +1è Opgave 1 è20èè Et bin rt tr med heltal i knuderne kan repr senteres som en v rdi af f lgende rekursive type: Type Tree = Prèval: Int, left, right: Treeè hvor det tomme tr angives som?-tree. Vi er interesserede

Læs mere

Talrækker. Aktivitet Emne Klassetrin Side

Talrækker. Aktivitet Emne Klassetrin Side VisiRegn ideer 3 Talrækker Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Talrækker 2-4 Elevaktiviteter til Talrækker 3.1 Talrækker (1) M-Æ 5-9 3.2 Hanoi-spillet

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 036, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 036. Varighed: timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4 Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er O(n )? n(log n) er O(n )? n n + (log n) er O(n )? n er O(n )? n er Ω( n )? Opgave (%) Opskriv følgende funktioner

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2. Eksamen august Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n + n er O(n )? n / er O(n / )? n er O(n log n)? n er O((log n) )? n er Ω(n )? Ja Nej Opgave (%) Opskriv følgende funktioner

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n Side af 0 sider Opgave (%) Ja Nej n er O(0n logn)? n er O(n )? n +n er O(n )? n logn er O(n )? n logn er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n Side af 0 sider Opgave (4%) Ja Nej n er O(n / )? n +n er O(n )? (logn) er O( logn )? n er O()? /n er O(logn)? Opgave (4%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: logn

Læs mere

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n Side af sider Opgave (%) Ja Nej n er O( n )? n er O(log n)? n er O(n )? n + er O(0n)? nlogn er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: nlogn logn

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb.

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb. Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse

Læs mere

Substitutions- og indkomsteffekt ved prisændringer

Substitutions- og indkomsteffekt ved prisændringer Substitutions- og indkomsteffekt ved prisændringer Erik Bennike 14. november 2009 Denne note giver en beskrivelse af de relevante begreber omkring substitutions- og indkomsteffekter i mikroøkonomi. 1 Introduktion

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè Opgave 1 è20èè Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives af fçlgende rekursive Trine-type: Type Expr = Sumèplus, minus, times, div: rgs, const: Int, name: Textè Type

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n er O(n 7 )? (logn) er O( n)? n(logn) er O(n)? n er O( n )? n er Ω(n )? Opgave (%) Opskriv følgende funktioner efter stigende orden med

Læs mere

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. 26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

P2-projektforslag Kombinatorik: grafteori og optimering.

P2-projektforslag Kombinatorik: grafteori og optimering. P2-projektforslag Kombinatorik: grafteori og optimering. Vejledere: Leif K. Jørgensen, Diego Ruano 1. februar 2013 1 Indledning Temaet for projekter på 2. semester af matematik-studiet og matematikøkonomi-studiet

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning) INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 10. august 2012, kl. 9.00-11.00 Eksamenslokale: Finlandsgade

Læs mere

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal Philip Bille Algoritmer og datastrukturer Algoritmisk problem. Præcist defineret relation mellem input og output. Algoritme. Metode til at løse et algoritmisk problem. Beskrevet i diskrete og entydige

Læs mere

DM02 opgaver ugeseddel 2

DM02 opgaver ugeseddel 2 DM0 opgaver ugeseddel af Fiona Nielsen 16. september 003 Øvelsesopgaver 9/9, 10/9 og 11/9 1. Vis, at 1 3 + 3 3 + 5 3 +... + (n 1) 3 = n 4 n. Omskriver til summationsformel: (i 1) 3 = n 4 n Bevis ved induktion

Læs mere

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer

Læs mere

Videregående Programmering for Diplom-E Noter

Videregående Programmering for Diplom-E Noter Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså

Læs mere

Kom i gang-opgaver til differentialregning

Kom i gang-opgaver til differentialregning Kom i gang-opgaver til differentialregning 00 Karsten Juul Det er kortsigtet at løse en opgave ved blot at udskifte tallene i en besvarelse af en tilsvarende opgave Dette skyldes at man så normalt ikke

Læs mere

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer. 14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel

Læs mere

Algoritmisk geometri

Algoritmisk geometri Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan

Læs mere

Sortering i lineær tid

Sortering i lineær tid Sortering i lineær tid Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel. Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel.

Læs mere

Rekursion C#-version

Rekursion C#-version Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er Ω(n)? n er O( n )? n er O(8logn)? + er O(n)? n er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Søgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille

Søgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7 Side af 0 sider Opgave (%) Ja Nej /n er O(n )? n (logn) er O(n 3 )? n + n er O(3 n )? n er O((logn) 3 )? nlogn er Ω(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen:

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Mandag den. marts 00, kl..00 11.00 Navn Gerth Stølting Brodal Årskort 1 Dette eksamenssæt består af en kombination

Læs mere

16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype.

16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype. 16 Træer. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype. Gennemløb af binære træer. Træer i Eiffel. 229 Definition af et træ.

Læs mere

Introduktion. Philip Bille

Introduktion. Philip Bille Introduktion Philip Bille Plan Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer og datastrukturer Hvad er det? Algoritmisk problem: præcist defineret relation mellem

Læs mere

Rapport Bjælken. Derefter lavede vi en oversigt, som viste alle løsningerne og forklarede, hvad der gør, at de er forskellige/ens.

Rapport Bjælken. Derefter lavede vi en oversigt, som viste alle løsningerne og forklarede, hvad der gør, at de er forskellige/ens. Rapport Bjælken Indledning Vi arbejdede med opgaverne i grupper. En gruppe lavede en tabel, som de undersøgte og fandt en regel. De andre grupper havde studeret tegninger af bjælker med forskellige længder,

Læs mere

BRP Sortering og søgning. Hægtede lister

BRP Sortering og søgning. Hægtede lister BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:

Læs mere

9.1 Egenværdier og egenvektorer

9.1 Egenværdier og egenvektorer SEKTION 9.1 EGENVÆRDIER OG EGENVEKTORER 9.1 Egenværdier og egenvektorer Definition 9.1.1 1. Lad V være et F-vektorrum; og lad T : V V være en lineær transformation. λ F er en egenværdi for T, hvis der

Læs mere

Produkter af vektorer i 2 dimensioner. Peter Harremoës Niels Brock

Produkter af vektorer i 2 dimensioner. Peter Harremoës Niels Brock Produkter af vektorer i dimensioner Peter Harremoës Niels Brock Septemer 00 Indledning Disse noter er skrevet som supplement og delvis erstatning for tilsvarende materiale i øgerne Mat B og Mat A. Vi vil

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

Datastrukturer. Datastruktur = data + operationer herpå

Datastrukturer. Datastruktur = data + operationer herpå Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 29. april, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Regneark II Calc Open Office

Regneark II Calc Open Office Side 1 af 10 Gangetabel... 2 Udfyldning... 2 Opbygning af gangetabellen... 3 Cellestørrelser... 4 Øveark... 4 Facitliste... 6 Sideopsætning... 7 Flytte celler... 7 Højrejustering... 7 Kalender... 8 Dage

Læs mere

Datastrukturer (recap) Datastruktur = data + operationer herpå

Datastrukturer (recap) Datastruktur = data + operationer herpå Dictionaries Datastrukturer (recap) Datastruktur = data + operationer herpå Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data (ofte underforstået, også

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Faglig læsning i matematik

Faglig læsning i matematik Faglig læsning i matematik af Heidi Kristiansen 1.1 Faglig læsning en matematisk arbejdsmåde Der har i de senere år været sat megen fokus på, at danske elever skal blive bedre til at læse. Tidligere har

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2010 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 24. april, 2010 (let justeret 10. maj og 21. maj 2010) Dette projekt udleveres i tre

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, F side af sider anmarks Tekniske Universitet Skriftlig prøve, den 9. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Basal statistik for lægevidenskabelige forskere, forår 2014 Udleveret 4. marts, afleveres senest ved øvelserne i uge 13 (25.

Basal statistik for lægevidenskabelige forskere, forår 2014 Udleveret 4. marts, afleveres senest ved øvelserne i uge 13 (25. Hjemmeopgave Basal statistik for lægevidenskabelige forskere, forår 2014 Udleveret 4. marts, afleveres senest ved øvelserne i uge 13 (25.-27 marts) Garvey et al. interesserer sig for sammenhængen mellem

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort Sortering Sortering ved fletning (merge-sort) 7 2 9 4! 2 4 7 9 7 2! 2 7 9 4! 4 9 7! 7 2! 2 9! 9 4! 4 1 2 Del-og-hersk Merge-sort Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR ATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Algoritmer og atastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. august 0,

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

ISO 27001/27002:2013 i SecureAware Policy TNG

ISO 27001/27002:2013 i SecureAware Policy TNG ISO 27001/27002:2013 i SecureAware Policy TNG - Sådan lægger du din informationssikkerhedshåndbog om til de nye ISO- standarder 1. Opgrader til version 4.6.0 (eller senere)... 2 2. (Kun for brugere af

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Sommeren 2001, opgave 1

Sommeren 2001, opgave 1 Sommeren 2001, opgave 1 Vi antager at k 3, da det ellers er uklart hvordan trekanterne kan sættes sammen i en kreds. Vi ser nu at for hver trekant er der en knude i kredsen, og en spids. Derfor er n =

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )? Eksamen juni Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) I det følgende angiver log n -tals-logaritmen af n. n+n er O(n)? n 6 er O(n )? nlogn er O(n /logn)? n er O(n )? n er O(n )?

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning) INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 Eksamensdag: Tirsdag den 7. juni 16, kl. 9.-11. Tilladte medbragte

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde

Læs mere

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 6.9.2006 Kursusintroduktion og Java-oversigt BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:

Læs mere

R e g e l f o r m a l i s m e r til b r u g v e d datamatisk lingvistik.

R e g e l f o r m a l i s m e r til b r u g v e d datamatisk lingvistik. Bente Maegaard, Københavns Universitet, Institut for anvendt og m a t e m a t i s k lingvxstik, Njalsgade 96 2300 K ø b e n h a v n S R e g e l f o r m a l i s m e r til b r u g v e d datamatisk lingvistik.

Læs mere

Datastrukturer. Datastruktur = data + operationer herpå

Datastrukturer. Datastruktur = data + operationer herpå Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle

Læs mere

MM4. Algoritmiske grundprincipper. Lister, stakke og køer. Hash-tabeller og Træer. Sortering. Søgning.

MM4. Algoritmiske grundprincipper. Lister, stakke og køer. Hash-tabeller og Træer. Sortering. Søgning. MM Algoritmiske grundprincipper. Lister, stakke og køer. Hash-tabeller og Træer. Sortering. Søgning. MM MM MM MM MM Sortering Sorteringsalgoritmer : Virkemåde og anvendelser Kompleksitet Algoritmen Sorteringsalgoritmer

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n +n er O(n )? Ja Nej n er O(n )? n+n er O(n. )? n+n er O(8n)? n logn er O(n )? Opgave (%) Opskriv følgende funktioner

Læs mere

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004 Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks

Læs mere

Algoritmer og invarianter

Algoritmer og invarianter Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Tirsdag den 20. marts 2012, kl.

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9

Læs mere