DM507 Algoritmer og datastrukturer

Størrelse: px
Starte visningen fra side:

Download "DM507 Algoritmer og datastrukturer"

Transkript

1 DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således at afleveringerne, og dermed arbejdet, strækkes over hele semesteret. Deadline for del I er onsdag den 8. april. Projektet skal besvares i grupper af størrelse to (evt. tre, efter aftale med underviser). Mål Målet for del I af projektet er at implementere to datastrukturer: en prioritetskø og en ordnet dictionary (ordbog). Implementationerne skal have veldefinerede interfaces, så de kan bruges som klasser i andre programmer. Prioritetskøen skal bruges direkte som biblioteksfunktion senere i del II af projektet, mens arbejdet med dictionary en kan ses som en forberedelse til elementer af del II. Bemærk: Det overordnede mål med projektet i DM507 er at komplementere kursets hovedfokus på viden om algoritmer og datastrukturer med træning i at overføre denne viden til konkret programmering. Formålet er derfor ikke at forberede deltagerne på den skriftlige eksamen. Bemærk også at projektbeskrivelsen af lang, ikke fordi den er svær, men fordi den er detaljeret og udførlig. Opgaver Opgave 1 Der skal i Java implementeres en datastruktur, som tilbyder (i Java: implementerer) følgende interface: 1

2 public interface PQ { public Element extractmin(); public void insert(element e); Her er Element en simpel type, der implementerer et (prioritet,data)-par. Denne type er defineret ved følgende simple klasse: public class Element { public int key; public Object data; public Element(int i, Object o){ this.key = i; this.data = o; De to dele af et objekt e af typen Element skal i dette projekt blot tilgås som e.key og e.data. Elementers prioriteter er altså af typen int, og deres associerede data er af typen Object. Metoden extractmin() returnerer elementet i prioritetskøen med mindst prioritet (er der flere elementer med mindste prioritet, da et vilkårligt af disse elementer). Det må gerne antages at metoden kun kaldes på en ikke-tom prioritetskø. Metoden insert(e) indsætter elementet e i prioritetskøen. Det må gerne antages at metoden kun kaldes på en prioritetskø med plads til endnu et element. Dette betyder, at det overlades til brugeren af prioritetskøen at sikre at ovenstående antagelser er opfyldt under brug, f.eks. ved at holde styr på antal elementer i prioritetskøen 1. Implementationen skal laves ved hjælp af strukturen heap i et array af Elements, baseret på pseudo-koden i Cormen et al. kapitel 6 (hovedsageligt i afsnit 6.5). Bemærk at der i dette projekt skal laves en min-heap struktur, mens bogen formulerer sin pseudo-kode for en max-heap struktur og derfor skal have alle uligheder vendt. Bemærk også at bogens pseudo-kode indekserer arrays startende med 1, mens Java starter med 0 en simpel måde at anvende bogens pseudo-kode på i Java, er at lægge én til den ønskede længde på array et, og så ikke at bruge pladsen med index 0 til noget. Bemærk endvidere at parametrene i metoder ikke er præcis de samme i bogens pseudo-kode som i interfacet PQ. Dette skyldes dels at i objektorienteret programmering kaldes metoder på et objekt Q med syntaksen Q.metode() fremfor metode(q), og dels at bogen kun opererer med prioriteter og ikke elementer. Derudover er A i bogens pseudo-kode et array indeholdende heapen, 1 Dette er ikke en robust måde at lave biblioteksfunktioner på, men er simpelt og godt nok til vores formål. 2

3 hvilket ikke skal kunne tilgås direkte af brugere af et prioritetskø-objekt Q på anden måde end gennem metoderne fra interfacet. Implementationen skal være i form af en Java-klasse, som kan bruges af andre programmer. Klassen skal hedde PQHeap, og skal implementere interfacet PQ. Klassen skal have én constructor metode PQHeap(int maxelms), der returnerer en ny, tom prioritetskø, og der som argument tager en øvre grænse for antallet af elementer i køen. Der vil være behov for at implementere metoder udover dem i interfacet, til internt brug i klassen. Opgave 2 Der skal i Java implementeres en datastruktur, som tilbyder følgende interface: public interface Dict { public void insert(int k); public int[] orderedtraversal(); public boolean search(int k); Nøgler er af typen int, og elementer består kun af nøgler (der er ikke yderligere data tilknyttet en nøgle). Metoden search(k) returnerer blot en boolean, som angiver om nøglen k er i træet. Metoden insert(k) indsætter nøglen k i træet. Metoden orderedtraversal() returnerer en kopi af træets elementer i et array i sorteret orden (fremfor at printe dem på skærmen som i bogens pseudo-kode). Implementationen skal laves ved hjælp af strukturen binært søgetræ, som beskrevet i Cormen et al. kapitel 12. Som det fremgår af interfacet Dict skal der kun implementeres indsættelse (pseudo-kode side 294), søgning (pseudokode side 290 eller 291), og inorder gennemløb (pseudo-kode side 288). Træet skal ikke holdes balanceret (dvs. der skal ikke bruges metoder fra kapitel 13). Implementationen skal være i form af en Java-klasse, som kan bruges af andre programmer. Klassen skal hedde DictBinTree, og skal implementere interfacet Dict. Klassen skal have én constructor-metode ved navn DictBinTree(), som returnerer en ny, tom dictionary. Der vil være behov for at implementere metoder udover dem i interfacet, til internt brug i klassen. Man skal desuden definere en separat klasse til at repræsentere knuder i træer. Et objekt af denne type skal indeholde referencer til to andre knudeobjekter (dens børn), med værdi null hvis disse ikke findes. Objekter af typen DictBinTree skal være et header-objekt, som indeholder en reference til knuden der er rod i træet, samt anden relevant global information on træet, f.eks. dets størrelse. Bemærk at parametrene i bogens pseudo-kode 3

4 er anderledes end i interfacet ovenfor. Dette skyldes at implementationsdetaljer (såsom at der findes knuder i dictionary en) ikke skal være synlige for brugere af datastrukturen. Der vil derfor for flere metoder være tale om to udgaver, den officielle fra interfacet, og en intern, som gør det virkelige arbejde. Den officielle kalder blot den interne, og tilføjer i kaldet yderligere parametre med relevante værdier. Opgave 3 Implementer to sorteringsalgoritmer baseret på dine implementationer af ovenstående interfaces PQ og Dict. Den ene algoritme skal implementere Heapsort ved gentagne indsættelser i en prioritetskø, efterfulgt af gentagne extractmin s. Datadelen af elementerne kan her sættes til at være null. Den anden algoritme skal implementere, hvad der kan kaldes Treesort: gentagne indsættelser i en dictionary, efterfulgt af et inorder gennemløb. De to algoritmer skal implementeres hver for sig i to programmer kaldet henholdsvis Heapsort og Treesort. Disse programmer skal bruge de ovenfor udviklede klasser PQHeap og DictBinTree som biblioteksfunkioner. Programmerne skal læse fra standard input (der som default er tastaturet), og skrive til standard output (der som default er skærmen). De skal antage, at input er en sekvens af char s bestående af heltal adskilt af whitespace. Man kan således bruge en Scanner fra biblioteket java.util og metoden nextint() til at indlæse tallene. Programmerne skal som output skrive tallene fra input i sorteret orden på standard output, adskilt af whitespace. Derved skal Heapsort kunne kaldes således i en kommandoprompt: java Heapsort Ctrl-D og skal så give flg. output på skærmen: Programmet Treesort skal opføre sig på samme måde. Bemærk at ved 4

5 hjælp af redirection 2 af standard input og output kan man i en kommandoprompt anvende programmerne (helt uden at ændre i dem) på filer også: java Heapsort < inputfile > outputfile Det er vigtigt at I afprøver ovenstående i en kommandoprompt, da programmerne skal kunne testes automatisk. Man må af samme grund heller ikke i sin kildekode have package statements, eller organisere sin kode i en folderstruktur 3. En detaljer er, at man under scan af input ikke ved, hvor mange der er. Dette er et problem for Heapsort, som skal kende det maksimale antal elementer i prioritetskøen. Én løsning er at indlæse i en ArrayList, og derfra (når scan af input stopper, og man kender antallet af elementer) lave inserts i en prioritetskø. Formalia Lav en rapport, som beskriver dine løsninger af opgaverne ovenfor. Da besvarelsen i store træk består af kode, skal rapporten struktureres som følger: En kort introduktion, som giver overblik over, hvad rapporten indeholder og besvarer. Din kode (evt. undtagen de mest trivielle dele), indlejret mellem tekstdele, som forklarer hvad koden indeholder og gør. Hvis du har nogle interessante designvalg (dvs. nogle, der ikke er eksplicit beskrevet i opgaveteksten), så beskriv disse i størst detalje. For at indlejre kode(bidder) i tekst i L A TEX kan du f.eks. bruge pakken listings, eller blot environment et verbatim. Et afsnit med beskrivelse af de test, du har udført for at sikre dig at koden fungerer korrekt. Fokuser mest på, hvad du har valgt at teste, mindre på at dokumentere resultatet, sålænge dette er som forventet. Hvis der er måder, du er bekendt med, hvorpå programmet ikke løser den stillede opgave, skal du skrive dette eksplicit. Husk at skrive navnene på personerne i gruppen på forsiden af rapporten. 2 Læs evt. om redirection på Unix Power Tools eller Wikipedia. 3 NB: Dette sker ofte automatisk hvis man bruger en IDE som Eclipse eller NetBeans under udvikling af koden. I så fald må man fjerne package statements og folderstruktur inden aflevering, (og derefter igen teste funktionaliteten, herunder redirection.) 5

6 Rapporten skal afleveres udprintet på papir i instruktorens boks på Imada (vælg een af instruktorerne, hvis personerne i gruppen går på forskellige hold). Spørg Imadas sekretær hvis man ikke ved, hvor instruktorboksene er. Der skal blot afleveres een kopi per gruppe. Derudover skal rapporten (i pdf -format) samt alle Java source-filer afleveres elektronisk i Blackboard med værktøjet SDU Assignment, som findes i menuen til venstre på kursussiden i Blackboard. De skal enten afleveres som individuelle filer eller som eet zip-arkiv (med alle filer på topniveau, dvs. uden nogen directory struktur). Der behøves kun afleveres under een persons navn i gruppen. Det er vigtigt at overholde alle syntaktiske regler ovenfor (navngivning af klasser, kald af programmer, zip-arkiv uden directory struktur, ingen package statements), da programmerne som sagt vil blive testet på automatiseret måde. Aflever materialet senest: Onsdag den 8. april, 2015, kl. 12:00. Bemærk at aflevering af andres kode eller tekst, hvad enten kopieret fra medstuderende, fra nettet, eller på andre måder, er eksamenssnyd, og vil blive behandlet som sådan. Man lærer desuden heller ikke noget. 6

DM507 Algoritmer og datastrukturer

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

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

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

DM507 Algoritmer og datastrukturer

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

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

DM507 Algoritmer og datastrukturer

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

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

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

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

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

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

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

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

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

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

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Introduktion til DM507

Introduktion til DM507 Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA

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

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

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

Danmarks Tekniske Universitet

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

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 [email protected]. Besvarelsen skal

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F 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:

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

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =

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

Danmarks Tekniske Universitet

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

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

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

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

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

Danmarks Tekniske Universitet

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

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

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...

Læs mere

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere