Introduktion til programmering. Uge 40 Computer Science, kap (minus kap 8.6).

Størrelse: px
Starte visningen fra side:

Download "Introduktion til programmering. Uge 40 Computer Science, kap (minus kap 8.6)."

Transkript

1 Introduktion til programmering Uge 40 Computer Science, kap (minus kap 8.6).

2 Kompendier Købes mellem 12 og 13 i 014 i Wienerbygningen Pris 70 kr.

3 Sidste gang Funktioner som metode til at skrive anvendelsesorienterede programmer Janus tegn: Metoderne i et modul kan tolkes som teknisk implementering når vi læser modulet Men de kan tolkes som beskrivelser af anvendelsesområdet når vi blot bruger modulet Indkapsling af implementeringsdetaljer. Netværk og netværksopbygning Protokoller Netværksprogrammering i Python Operativsystemer

4 Plan Algoritmer Definition Opbygning Analyse Pseudokode Rekursion Kompleksitet Eksempler Søgning Generering af tekster Datastrukturer Userdefined ADT Eksempler Enkeltkædede lister, dobbeltkædede lister Stakke, køer Træer Tolkning af ADT

5 Algoritmer Der er forskellige definitioner Stort set konsensus om at: En algoritme genererer en ordnet, entydig og endelig sekvens af operationer der med garanti slutter Ordnet Entydig Endelig Skridt efter hinanden, evt repetitioner Ingen valgfrihed (deterministisk) Ingen flertydighed Den vil slutte... men måske først om 1000 år... Kogebøger, strikkeopskrifter, how-to etc. Muslingeprogrammet er en algoritme

6 Algoritmer En algoritme i datalogien er en generel metode til at løse et bestemt problemtype Eks. søge i en liste, sortere en liste. Et program = en algoritme er noget sludder Programmer repræsenterer mange algoritmer der virker sammen. Der findes mange algoritmer til at løse det samme problem Lineær og binær søgning er to forskellige algoritmer De løser problemet at finde et element i en liste Forskellige karakteristika Tid, plads Forskellige datatyper træer, lister

7 Algoritmer Program: repræsentation af (eller eller flere) algoritmer Proces: udførelse af en algoritme

8 Algoritmer, opbygning Algoritmer er sproguafhængige Kan beskrives i mange forskellige sprog rettet mod mange forskellige fortolkere Kan beskrives på en stiliseret sprogform, pseudokode Pseudokode er en notationsform skrevet for en menneskelig fortolker men orienteret mod omskrivning i et programmeringssprog der kan læses af maskiner Pseudokode kan Implementeres på mange måder så den kan køre på en maskine Pseudokode beskriver generel struktur, ikke detailjer

9 Muslingeeksemplet Så længe der er muslinger i spanden: Tag en musling op af spanden Hvis muslingen er lukket så: Ellers: Smid den i gryden Smid den i affaldsposen Struktureret dansk Viser struktur men ingen detaljer Vælger danske konstruktioner der har en analog i det programmeringssprog det skal oversættes til

10 Muslingeeksemplet CS s notation Ligner et programmeringssprog lidt mere () markerer afsnit der skal beskrives mere nøjagtigt Angiver hvilket input og output algoritmen skal have Fordel (A, B, C) Input: en liste A af ting og to tomme lister B og C Output: A er en tom. Tingene er fordelt på B og C while (der er ting i A) do: (Tag en ting op af A) Hvis (tingen er lukket) så: (Læg den i B) Ellers: (Læg den i C)

11 I Python def fordel(a,b,c): while A <> []: enting = A[0] del A[0] if enting == 0: B.append(enTing) else: C.append(enTing) >>> A = [1,0,1,0,1,1,0] >>> B = [] >>> C = [] >>> fordel(a,b,c) >>> A [] >>> B [0, 0, 0] >>> C [1, 1, 1, 1]

12 Et endnu mere formelt eks Finder det største element i en liste Algorithm listmax (A, n): Input: en liste A med n 1 tal Output: det største element A currentmaxa[0] for i 1 to n-1 do if currentmax < A[i] then currentmaxa[i] return currentmax

13 I Python def listmax(a): currentmax = A[0] for i in range(len(a)): if currentmax < A[i]: currentmax = A[i] return currentmax >>> listmax([1,3,2,4,9,4]) 9 >>>

14 Guideline Udvikl algoritmen i struktureret dansk eller en lidt mere formel pseudokode Check at logikken er OK Oversæt til programmeringssprog og kør det Ret fejl i logik i implementering

15 Algoritmer, analyse Væsentligt område af datalogien Analyse af korrekthed og udførselstid Kræver følgende: Sprog til at beskrive algoritmer Pseudokode eller struktureret dansk En model for beregninger Primitive operationer (f.eks. en sammenligning) En metrik Store Hvorfor? For at være maskinuafhængig

16 Primitive operationer Tildelingsoperation currentmax = A[0] Metodekald / funktionskald listmax([1,3,2,4,9,4]) Aritmetisk operation A = A+1 Sammenligning currentmax < A[i]: Indeksering A[i] Returnere fra en metode return currentmax

17 Eksempel ListMax initialisering : i= 0 1 operation initialisering: currentmax = A[i] 2 operationer Sammenligning i<=n n operationer Løkken udføres n-1 gange: currentmax < A[i] 2 operationer Muligvis: currentmax = A[i] 2 operationer i = i+1 2 operationer Returnering af værdi: return currentmax 1 operation def listmax(a,n): i = 0 currentmax = A[i] while i <= n: if currentmax < A[i]: currentmax = A[i] i = i+1 return currentmax X = [1,4,3,5,7,9,10] print listmax(x,len(x)-1)

18 Kompleksitet For input n Best case: Hvis der aldrig sker noget med currentmax 2+1+n+4(n-1) +1 = 5n Worst case: Hvis der altid sker noget med CurrentMax 2+1+n+6(n-1)+1 = 7n-2 Konstanter smides væk O(n) Lineær udførelsestid, tiden vokser med inputtet

19 Store O Store O betyder: En funktion er mindre end eller lig med en anden funktion der udvikler sig på en bestemt måde O(n): den anden funktion er lineær Logaritmisk: O(log n) - binær søgning Lineær: O(n) - sekventiel søgning Kvadratisk: O(n 2 ) Polynomial: O(n k ) Eksponentiel: O(a n ) (a>1)

20 Vi ser kun på den generelle kurve Lineær: n Parabolsk: n 2 Logaritmisk: log 2 n

21 Eksempel: Søgning Problem: Givet en mængde data, søg efter et element der opfylder et kriterie Eks: find største element i en liste Algoritmevalg afhænger af egenskaber ved mængden af data Usorteret: sekventiel søgning Sorteret: Binær søgning

22 Sekventiel søgning Gennemløber hele mængden (listen) en efter en Skal se på alle elementer i det værste tilfælde Lineær Eks: givet en liste, findes elementet med værdien 88 i listen? O(n)

23 Binær søgning Forudsætter at listen er sorteret!!! Forudsætter man kan indeksere alle indgange direkte Halvering af søgeområdet i hvert skridt O(log n) antal søgninger hvis der er 1024 elementer er max log 2 (1024) = 10 fordi 2 10 = , 512, 256, 128, 64, 32, 16, 8, 4, 2

24 Binær søgning, Pseudokode procedure binsearch(x, nums): Input: sorteret liste nums plus et tal x Output: tallets position i listen hvis det findes, ellers -1 low = 0 high = (nummeret på listens sidste element) while (der stadig er noget at søge i) do: mid (midten af listen afgrænset ved low og high) item (elementet der ligger i midlten) if x= item then: return mid else if x < mid: high mid - 1 else: low mid + 1 return -1

25 Binær Søgning, Python def binsearch(x, nums): low = 0 high = len(nums)-1 while low <= high: mid = (low + high)/2 item = nums[mid] if x == item: return mid elif x < mid: high = mid - 1 else: low = mid + 1 return -1 alist = [1,2,5,7,10, 12, 67, 100] print binsearch(12,alist) print binsearch(234,alist) --- >>> 5-1 >>>

26 Binær søgning Søgning efter 12 [1, 2, 5, 7, 10, 12, 67, 100] [1, 2, 5, 7, 10, 12, 67, 100] Søgning efter 234 [1, 2, 5, 7, 10, 12, 67, 100] [1, 2, 5, 7, 10, 12, 67, 100] [1, 2, 5, 7, 10, 12, 67, 100] [1, 2, 5, 7, 10, 12, 67, 100] def binsearch(x, nums): low = 0 high = len(nums)-1 while low <= high: mid = (low + high)/2 item = nums[mid] print nums, low, mid, item, high if x == item: return mid elif x < mid: high = mid - 1 else: low = mid + 1 return -1

27 Forskellen mellem lineær og binær søgning Viser sig først ved store datamængder En liste på ord Lineær søgning: I snit sammenligninger Worst case: ! Binær søgning Worst case: 24 sammenligninger!

28 Rekursion Det at løse en delopgave efter samme metode som hovedopgaven Rejse fra Århus til København Rejse fra Århus til Æbeltoft Rejse fra Æbeltoft til Odden Rejse fra Odden til København Fortælle en historie Fortælle om miljø og personer Fortælle om hovedpersonernes strid Fortælle om udfaldet

29 Flere eksempler Sige sætningen Ole sagde at han kom Sige grundleddet ( Ole ) Sige udsagnsordet ( sagde ) Sige ordet ( at ) Sige sætningen han kom

30 Syntaktisk specifikation af programmeringssprog Uddrag fra Pythons specifikation stmt_list ::= simple_stmt (";" simple_stmt)* [";"]. if_stmt ::= "if" expression ":" suite ( "elif" expression ":" suite )* ["else" ":" suite] while_stmt ::= "while" expression ":" suite ["else" ":" suite] for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite] Notation ::= betyder består af. betyder eller [] betyder frivilligt ()* betyder nul eller flere gange

31 Problematisk rekursion Løsning af ægteskabelige problemer Tale sammen uden at skændes Forstå hinanden Forstå hinanden Tale sammen uden at skændes Fører til en uendelig regres

32 Effektiv rekursion Fremgangsmåde Basis tilfældet: Involverer ikke rekursion men kun primitive operationer der umiddelbart kan udføres Det rekursive tilfælde: Involverer rekursion men for et simplere problem

33 Binær søgning igen igen def binsearch(x, nums, low, high): while low <= high: mid = (low + high)/2 item = nums[mid] print nums, low, mid, item, high if x == item: return True elif x < mid: return binsearch(x,nums, low, high-1) else: return binsearch (x, nums, mid+1, high) return False Basistilfældet: primitiv operation: return True Rekursion 1: en mindre liste liste = [1,2,5,3,4,6,8,3,4,9,14,56] print binsearch(56,liste,0,len(liste)) Rekursion 2: en mindre liste [1, 2, 5, 3, 4, 6, 8, 3, 4, 9, 14, 56] [1, 2, 5, 3, 4, 6, 8, 3, 4, 9, 14, 56] [1, 2, 5, 3, 4, 6, 8, 3, 4, 9, 14, 56] True

34 Leksikalske cykler Opslag i COD 1964 phone: telephone telephone: send (message, etc.), speak (to person) by telephone. Send: secure conveyance of, to some destination Convey: transport, carry; transmit (sound, smell, etc.) Transport: convey (person, goods, troops, baggage, etc.) from one place to another Hvordan kan vi overhovedet bruge sproget? Convey Transport

35 Basistilfælde i sproget Findes der grundlæggende semantiske primitiver i sproget? De må være hard-wired i vores fysiske sanseog handleapparat De kan ikke være defineret sprogligt Universalier? Mulige forslag Ny/gammel information Roller: Agent, Objekt, Instrument, Den det gavner, Retning, Sted, Tid

36 Rekursive generering S ::= N VP NP ::= N N som VP at S VP ::= VT NP VI N ::= Anders Bent Christina VT ::= så hørte VI ::= løb sov lo Syntaks: rekursivt tilfælde Ordbog: basistilfælde S VP NP

37 Mulig implementering kategori ::= underkat 1 underkat 2 underkat n def kategori(): choice = random.randint(1,n) if choice == 1: return underkat1() elif choice == 2: return underkat2() else: return underkatn()

38 Eksempel Regel: NP ::= N N som VP at S Implementering: def NP(): choice = random.randint(1,3) if choice == 1: return N() elif choice == 2: return N()+ 'som'+ VP() else: return 'at'+ S() Eksempler Anders løb Christina så at Christina løb Anders opdagede Bent som sov Anders løb Bent så Anders Basistilfælde Rekursivt tilfælde Rekursivt tilfælde

39 Datatyper

40 Datatyper Datatyper er Mulige værdier, samt relaterede operationer Eks. Integers (heltal) Værdier: alle hele tal fra - til Reelt: begrænset af maskinen Operationer: +, -, *, / etc. Typesystemet kan udvides Brugerdefinerede typer: sammensatte værdier Konto: ejer, indestående, renteprocent ADT, Abstrakte Data Typer: brugerdefinerede typer + operationer Konto: ejer, indestående, renteprocent + hæve, indsætte, rentetilskrivning Klasser og objekter: ADT + nedarvning I python ligner typer klasser Moduler indeholder ofte klasser man kan bruge

41 Definition af klasser class konto: def init (self,navn, indestaaende, rentesats): self.navn = navn self.indestaaende = indestaaende self.rentesats = rentesats def SaetInd(self,beloeb): self.indestaaende += beloeb def TraekUd(self,beloeb): self.indestaaende -= beloeb def TilSkrivRenter(self): self.indestaaende += self.indestaaende * self.rentesats/100

42 Brug af klasser >>> from konto import * >>> minkonto = konto('peter',0,5) >>> minkonto.indestaaende 0 >>> minkonto.saetind(100) >>> minkonto.indestaaende 100 >>> minkonto.traekud(50) >>> minkonto.indestaaende 50 >>> minkonto.indestaaende minkonto minkonto.saetind

43 Lister Værdi: nul eller flere elementer Operationer: append(...) count(...) extend(...) index(...) insert(...) pop(...) remove(...) Reverse (...) sort(...) Man skriver navnet på objektet,., plus operationen x.append(7) Repræsentamen Objekt X listeelementer x.operation() operationer

44 Typer og instanser Eksperiment >>> type(1) <type 'int'> >>> type(int) <type 'type > >>> type(type) <type 'type'> Typer og deres medlemmer er forskellige objekter. Forskellen mellem en kageform og en kage. 1 er en instans (er medlem) af typen int. Int er ikke selv en instans of int men af typen type. (men Type er selv en instans of typen Type!)

45 Bruger-definerede typer Eksempler Enkelt-trådede lister Dobbelt-trådede lister Stakke Køer Træer O: træ Skal implementeres ved hjælp af eksisterende operationer Disse skjules for brugeren af typen Janus tegn I: topologi I: Python fortolkeren R: operationer O: lagerceller

46 Enkelt-trådede lister Skal ikke forveksles med python lister [] En liste er en række elemeter der er kædet sammen. Hvert element indeholder en variabel, next, der peger på næste element i listen, og vil desuden ofte indeholde en anden værdi med data Vi har adgang til det første element i listen, og derigennem det næste (Egon Olesen fører til James Bond, der fører til Rambo) Men vi kan ikke gå baglæns (Dirty Harry fører ikke til noget)

47 Dobbelt-trådede lister Data, next og prev Her kan vi gå begge veje

48 Stak FIFO Har følgende metoder: push(elem) -> nil: påtag dig ny opgave og udsæt den nuværende pop() -> elem (sletter): afslut nuværende og genoptag afbrudt opgave top() -> elem (sletter ikke): hvad var det jeg var i gang med isempty() -> boolean: er jeg færdig for i dag? size() -> integer: hvor mange ting venter?

49 Kø En kø er LIFO Har følgende metoder: enqueue(elem) -> nil: stil dig i kø dequeue() -> elem at front: betal ved kassen size() -> integer: hvor mange kunder venter? isempty() -> boolean: er køen tom?

50 Træer En datastruktur bestående af en række knuder (noder) En node kan have nul eller flere børn og nul eller én forælder En node uden børn kaldes et blad. I et binært træ har en knude to højst to børn Børn af S(ætning) S ::= N VP NP ::= N N som VP at S VP ::= VT NP VI N ::= Anders Bent Christina VT ::= så hørte VI ::= løb sov lo Ordene er blade

51 Binært søgetræ Definition En forælder kan højst have to børn En forældres venstre barn og dets efterkommere er mindre end forælderen En forældres højre barn og dets efterkommere er er større end forælderen Binær søgning kan anvendes her BinærSøgning(rod, navn) Hvis roden = nil: Returner fejl Ellers: 1. Hvis roden = det søgte navn, returner succes 2. Hvis navnet < roden, kald proceduren med venstre barn som rod 3. Hvis navnet > roden kald proceudren med højre barn som rod

52 Tolkning af abstrakte datastrukturer jvnf. uge 36 Repræsentation Lister Stakke Køer Træer Rekursion Objekt Associationer Mål og midler Prioritering og afbrud Køer i supermarkedet Trafikpropper Helheder og dele Overordnet og underordnet Mål og midler Helhed og del

53 Opgave Emne: Algoritmer og datastrukturer, korrekthed, kompleksitet, søgning, iteration, rekursion Obl øvelse 4. Iteration og rekursion. Et palindrom er en streng der indeholder samme sekvens af bogstaver ligegyldigt om man læser den forfra og bagfra. Eksempler: Otto, Anna. Skriv to programmer der givet et input afgør om input er et palindrom eller ej. Den ene løsning skal anvende rekursion (hint: en streng er et palindrom hvis først og sidste bogstav er ens og delstrengen mellem dem er et palindrom); den anden løsning skal anvende iteration. Naturligt sprog indeholder rekursive konstruktioner. Vi finder dem blandt andet i ledsætninger: en sætning kan indeholder en ledsætning der kan indeholde en ledsætning, etc. Skriv et program der producerer tilfældige eksempler på sætninger som genereres af følgende grammatik: S ::= N VP NP ::= N N som VP at S VP ::= VT NP VI N ::= Anders Bent Christina VT ::= så hørte VI ::= løb sov lo S = sætning, NP = noun phrase, N = noun, VP = verb phrase, V = verb, VT = transitive verb, VI = intransitive verb. ::= betyder består af. S består f.eks. af en N efterfulgt af en VP. betyder eller : VT består af så eller hørte. Hint: implementer hver grammatisk kategori som S og NP som en funktion der kalder andre funktioner. S kalder f.eks. N og VP. Importer modulet random og brug random. randint(a,b) til at vælge tilfældigt mellem genereringsmulighederne.

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 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

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

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

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

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 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

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. 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

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

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

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

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer 1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO

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

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

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

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

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

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

Danmarks Tekniske Universitet

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

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

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

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

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

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

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

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

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

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

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

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 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning

Læs mere

Introduktion til datastrukturer

Introduktion til datastrukturer Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Philip Bille Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller

Læs mere

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Programmeringscamp. Implementer funktionerne én for én og test hele tiden. Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere

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

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

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

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

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

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

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 Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet Side af 1 sider Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Dette eksamenssæt består af en kombination af små skriftlige opgaver og multiplechoice-opgaver. Opgaverne

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

Skriftlig eksamen i Datalogi

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

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

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

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

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

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 1. april 200, kl..00-11.00

Læs mere

Introduktion til datastrukturer. Philip Bille

Introduktion til datastrukturer. Philip Bille Introduktion til datastrukturer Philip Bille Plan Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Datastrukturer Datastrukturer Datastruktur: Metode til at organise data så det kan søges

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

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): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,

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

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

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

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

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

Træer. Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/

Træer. Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/ Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/11-2004 Træer En meget vigtig datastruktur Repræsentation af sprog (i meget generel betydning), syntakstræer: Java (i en compiler), SQL (i et databasesystem),

Læs mere

Søgetræer: Generel repræsentation af (sorterede) mængder og funktioner Databasesystemer...

Søgetræer: Generel repræsentation af (sorterede) mængder og funktioner Databasesystemer... Datastrukturer & Algoritmer, Datalogi C Forelæsning 11/11-2003 Træer En meget vigtig datastruktur Repræsentation af sprog (i meget generel betydning), syntakstræer: Java (i en compiler), SQL (i et databasesystem),

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen

Læs mere

Stakke, køer og lidt om hægtede lister

Stakke, køer og lidt om hægtede lister Datastrukturer & Algoritmer, Datalogi C Forelæsning 4/11-2003 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Hvorfor? Fundamentale datastrukturer man får brug for igen og

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

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

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

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

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

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

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

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

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

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

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer. Orienterede grafer Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer Philip Bille Orienterede grafer Introduktion Repræsentation Søgning Topologisk

Læs mere

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

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

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

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

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

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

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

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

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

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

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: Torsdag den 26. marts 2009, kl.

Læs mere

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,

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

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

Stakke, køer og lidt om hægtede lister - kapitel 16 og 17

Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Datastrukturer & Algoritmer, Datalogi C Forelæsning 2/11-2004 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Fundamentale datastrukturer man får brug for igen og igen Et

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 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

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

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

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: Fredag den 13. august 2010, kl.

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer Philip Bille Orienteret graf. Mængde af knuder forbundet parvis med orienterede kanter. deg + (7) =, deg - (7) = Lemma. v V deg - (v) = v V deg + (v) = m. Bevis. Hver kant har netop en startknude og slutknude.

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

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

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

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere