Om Kurset og Analyse av Algoritmer
|
|
|
- Christine Skoglund
- 8 år siden
- Visninger:
Transkript
1 Om Kurset og Analyse av Algoritmer Lars Vidar Magnusson Praktisk informasjon om kurset Hva er en algoritme? (kapittel 1) Hvordan analysere en algoritme? (kapittel 2)
2 Praktisk Informasjon Introduction to Algorithms (Third Edition) - Cormen, Leiserson, Rivest & Stein - ISBN Forelesninger Onsdager D1-055/056 Fredager D1-052 Øvingstimer?? 4 obligatoriske innleveringer 4 timers skriftlig eksamen
3 Kodeeksempler Fagboken bruker pseudokode for alle kodeeksempler. Dette frigjør boken fra språklige tilpasninger. Alle eksempler gitt av faglærer vil bli gitt i to programmeringsparadigmer. Imperativ (Java) Funksjonell (SML)
4 Om Kurset Algoritmer og Datastrukturer er et helt essensielt kurs i en utviklingsorientert IT utdannelse. Kurset er derfor lagt opp etter internasjonal standard. Kurset er både vanskelig og omfattende. Vi legger opp til å unngå de tyngste teoretiske emnene, men vi legger samtidig til rette for at studentene kan sette seg så dypt inn i temaet som ønskelig. Kurset gir studenten de nødvendige ferdighetene for å kunne bedømme den beste måten å løse et hvilket som helst problem. Innsikt i algoritmer og datastrukturer er det som skiller en informatiker fra en applikasjonsutvikler.
5 Hva er en algoritme? Utdrag fra fagboken (CLRS) Informally, an algorithm is any well-defined computational proceduce that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output. Dette er en uformell definisjon av en algoritme, men enda løsere definisjoner er også vanlige e.g En sekvens av faste steg som utfører en bestemt oppgave.
6 Hva brukes algoritmer til? The Human Genome Project er avhengig av kompliserte datastrukturer og algoritmer for lagring og analyse av alle genene i menneskelig DNA. Internettet er avhengig av algoritmer for å sende data langs den mest effektive ruten, og søkemotorene bruker avanserte algoritmer for å gjøre innholdet søkbart. Elektronisk handel er avhengig av krypteringsalgoritmer for å sikre alle elektroniske transaksjoner....
7 Algoritmer og Effektivitet Algoritmer som løser det samme problemet har ikke nødvendigvis samme effektivitet e.g. insertion sort vs merge sort. Effektiviteten til en algoritme er ofte viktigere enn hastigheten på maskinvaren. Maskin A med kapasitet på 10 milliarder operasjoner i sekundet kjører insertion sort, og maskin B med kapasitet på 10 millioner operasjoner i sekundet kjører merge sort. Begge maskiner skal sortere 10 millioner tall. Kjøretid A = Kjøretid B = (10 7 ) 2 instruksjoner = sekunder instruksjoner per sekund 107 log 10 7 instruksjoner 23 sekunder 10 7 intruksjoner per sekund
8 Motivasjonshistorie - Matching Edmonds publiserte i 1965 en effektiv algoritme for maximum matching i en graf [Edmonds(1965)]. Artikkelen skal i utgangspunktet ha blitt avvist på grunnlag av at en algoritme var overflødig siden problemet kunne løses ved å teste alle mulige paringer (brute force). Edmonds skal da ha kommet opp med et enkelt eksempel som illustrerte hvorfor dette raskt vil føre til problemer.
9 Motivasjonshistorie - Matching - Brute Force Eksempel Si at man ønsker å finne den beste paringen mellom 100 gutter og 100 jenter hvor man enkelt kan se om et par er en god match eller ikke. Dette kan løses ved å teste alle mulige kombinasjoner av enten guttene eller jentene. Dette resulterer i å teste 100! mulige kombinasjoner. 100! = > La oss anta at vi kan teste kombinasjoner i sekundet og at det er 10 8 sekunder i et år (som er nokså kraftige overdrivelser). I løpet av et år vil vi da kunne teste = kombinasjoner. Vi ender da opp med at det vil ta i overkant av = år å teste alle kombinasjonene. Til sammenligning har det ikke gått mer enn år siden universets begynnelse.
10 Vår Første Algoritme - Insertion-Sort Insertion-Sort er en effektiv inkrementell sorteringsalgoritme for små inputstørrelser i.e. korte sekvenser av elementer å sortere. Algoritmen er gitt under i pseudokode. Insertion-Sort(A) 1 for j = 2 to A.length 2 key = A[j] 3 / Insert A[j] into the sorted sequence A[1.. j 1]. 4 i = j 1 5 while i > 0 and A[i] > key 6 A[i + 1] = A[i] 7 i = i 1 8 A[i + 1] = key
11 Loop Invarianter og Insertion-Sort På ethvert steg i kjøringen av Insertion-Sort på listen A med n elementer representerer A[1.. j 1] allerede sorterte elementer, eller keys, og A[j.. n] gjenstående elementer å sortere. Dette kalles en loop invariant. Initialization: Den skal være sann før første iterasjon løkken. Maintenance: Hvis den er sann før en iterasjon skal den være sann før neste. Termination: Loop invarianten gir riktigheten av algoritmen. Sjekk riktigheten av Insertion-Sort!
12 Analyse av Insertion-Sort Kjøretiden til Insertion-Sort avhenger av størrelsen på input i.e. sekvensen som skal sorteres. I beste fall (best-case analysis) er kjøretiden lineær. Dette forekommer når listen allerede er sortert. I verste fall (worst-case analysis) er kjøretiden kvadratisk. Dette forekommer når listen er sortert i motsatt rekkefølge. I gjennomsnitt (average-case analysis) er kjøretiden ofte sammenlignbar med verste fall. I tilfellet med Insertion-Sort hvert element må i gjennomsnitt sammenlignes med halvparten av de sorterte elementene. Vi kommer tilbake til dette i detalj senere.
13 Effektivitet vs. Order of Growth Når vi analyserer effektiviteten til algoritmer er vi normalt ikke interessert i konstantfaktorene og andre detaljer av regnestykket da disse gir oss mere informasjon enn vi trenger. Vi er bare opptatt av hvordan kjøretiden endrer seg i forhold til inputstørrelsen n. Dette kalles gjerne rate of growth eller order of growth. Vi skal se nærmere på dette i neste forelesning.
14 Vår Andre Algoritme - Merge-Sort Vår andre algoritme er også en sorteringsaloritme, men Merge-Sort har et annet designe en Insertion-Sort. Merge-Sort er en såkalt divide-and-conquer algoritme. Divide (Del) problemet inn i delproblemer av samme problem. I dette tilfellet innebærer det å dele listen i to like store lister Conquer (Løs) delproblemene. I Merge-Sort gjøres dette ved å sortere delproblemen rekursivt. Combine (Kombiner) de løste delproblemene. De to sorterte dellistene kombineres for å produsere det endelige resultatet. I Merge-Sort håndteres de to første stegene av Merge-Sort selv, mens det tredje steget håndteres av en hjelpefunksjon Merge.
15 Vår Andre Algoritme - Merge Pseudokode Merge(A, p, q, r) 1 n 1 = q p n 2 = r q 3 let L[1.. n 1 + 1] and R[1.. N 2 + 1] be new arrays 4 for i = 1 to n 1 5 L[i] = A[p + i 1] 6 for j = 1 to n 2 7 R[j] = A[q + j] 8 L[n 1 + 1] = 9 R[n 2 + 1] = 10 i = 1 11 j = 1 12 for k = p to r 13 if L[i] R[j] 14 A[k] = L[i] 15 i = i else A[k] = R[j] 17 j = j + 1
16 Vår Andre Algoritme - Merge-Sort Pseudokode Merge algoritmen benyttes i combine steget i divide-and-conquer algoritmen Merge-Sort. Pseudokoden for sorteringsalgoritmen er listet under. Merge-Sort(A, p, r) 1 if p < r 2 q = (p + r)/2 3 Merge-Sort(A,p,q) 4 Merge-Sort(A,q+1,r) 5 Merge(A,p,q,r)
17 Bibliography Jack Edmonds. Maximum matching and a polyhedron with 0, 1 vertices. J. of Res. the Nat. Bureau of Standards, 69 B: , 1965.
Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort
Quicksort Lars Vidar Magnusson 29.1.2014 Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort Om Quicksort Quicksort er en svært populær sorteringsalgoritme. Algoritmen har i verstefall en kjøretid
Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006
Løsningsforslag for Obligatorisk Oppgave 2 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.02.14 Den andre obligatoriske oppgaven tar for seg forelesning 5, 6, og 7 som dreier seg om
Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer
Heapsort Lars Vidar Magnusson 24.1.2014 Kapittel 6 Heaps Heapsort Prioritetskøer Sorterings Problemet Sorterings problemet er et av de mest fundementalske problemene innen informatikken. Vi sorterer typisk
Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson
Høgskoleni østfold EKSAMEN Emnekode: ITF 20006 Emne: Algoritmer og Datastrukturer Dato: 22.05.2015 Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: 4 dobbeltsidige ark med notater Lars Magnusson
Divide-and-Conquer. Lars Vidar Magnusson 13.1.2015
Divide-and-Conquer Lars Vidar Magnusson 13.1.2015 Kapittel 4 Maximum sub-array problemet Matrix multiplikasjon Analyse av divide-and-conquer algoritmer ved hjelp av substitusjonsmetoden Divide-and-Conquer
Algoritmer - definisjon
Algoritmeanalyse Algoritmer - definisjon En algoritme er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede
Analyse av Algoritmer
Analyse av Algoritmer Lars Vidar Magnusson 10.1.2014 Asymptotisk notasjon (kapittel 3) Kompleksitetsklasser Uløselige problem Asymptotisk Notasjon Asymptotisk analyse innebærer å finne en algoritmes kjøretid
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 7. desember, 06 Eksamenstid
Algoritmer - definisjon
Algoritmeanalyse Algoritmer - definisjon En algoritme* er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede
Sortering i Lineær Tid
Sortering i Lineær Tid Lars Vidar Magnusson 5.2.2014 Kapittel 8 Counting Sort Radix Sort Bucket Sort Sammenligningsbasert Sortering Sorteringsalgoritmene vi har sett på så langt har alle vært sammenligningsbaserte
Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006
Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om
Øvingsforelesning 3: Splitt og hersk. Daniel Solberg
Øvingsforelesning 3: Splitt og hersk Daniel Solberg Plan for dagen Vi går raskt gjennom øving 2 Splitt og hersk Algoritmer: Mergesort Quicksort Binærsøk Rekurrenser, masse rekurrenser 2 Splitt og hersk
Minimum Spenntrær - Kruskal & Prim
Minimum Spenntrær - Kruskal & Prim Lars Vidar Magnusson 4.4.2014 Kapittel 23 Kruskal algoritmen Prim algoritmen Kruskal Algoritmen Kruskal algoritmen kan beskrives med følgende punkter. Vi har en en sammenkoblet
Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl
TDT4120 2003-12-09 Stud.-nr: Antall sider: 1/7 Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas,
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen
INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer
Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige
Algoritmeanalyse. (og litt om datastrukturer)
Algoritmeanalyse (og litt om datastrukturer) Datastrukturer definisjon En datastruktur er den måten en samling data er organisert på. Datastrukturen kan være ordnet (sortert på en eller annen måte) eller
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 9. august, 07 Eksamenstid
Anbefalte forkunnskaper Studentene forutsettes å kunne programmere, for eksempel ved å ha tatt TDT4100 Objektorientert programmering.
Anbefalte forkunnskaper Studentene forutsettes å kunne programmere, for eksempel ved å ha tatt TDT4100 Objektorientert programmering. Studentene forutsettes også å ha kunnskaper om funksjoner, logaritmer,
Grunnleggende Grafalgoritmer
Grunnleggende Grafalgoritmer Lars Vidar Magnusson 19.3.2014 Kapittel 22 Representere en graf Bredde-først søk Grafer i Informatikken Problem med grafer går ofte igjen i informatikkens verden, så det å
Lars Vidar Magnusson
B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner
PRIORITETSKØ. Aksjehandel. Datastruktur for aksjehandel. Nøkler og Totalorden-relasjonen
PRIORITETSKØ Applikasjon: aksjehandel ADT (eng: Priority Queue - PQ) Implementering av PQ med sekvenser Sortering vha PQ Mer om sortering Aksjehandel Vi ser på en aksje som kjøpes og selges på børsen.
Øvingsforelesning 6. Sorteringsalgoritmer. Kristian Veøy
Øvingsforelesning 6 Sorteringsalgoritmer Kristian Veøy [email protected] 26.09.08 1 Spørsmål fra øvingsgruppene Må jeg kunne python på eksamen? (Nei) Er det lurt å gjøre alle programmeringsøvingene? (Ikke
INF2220: Time 12 - Sortering
INF0: Time 1 - Sortering Mathias Lohne mathialo Noen algoritmer Vi skal nå se på noen konkrete sorteringsalgoritmer. Gjennomgående i alle eksempler vil vi sortere tall etter tallverdi, men som diskutert
LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 Faglig kontakt under eksamen: Magnus Lie Hetland LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER
Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode
Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon
Lars Vidar Magnusson
Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både
Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.
Enkel alle-til-allealgoritme: Kjør Dijkstra (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Kan fungere for spinkle grafer blir dyrt ellers. Alle mot alle Åttende forelesning 1 Dijkstra
INF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
7) Radix-sortering sekvensielt kode og effekten av cache
) Radix-sortering sekvensielt kode og effekten av cache Dels er denne gjennomgangen av vanlig Radix-sortering viktig for å forstå en senere parallell versjon. Dels viser den effekten vi akkurat så tilfeldig
Læringsmål og pensum. Algoritmeeffektivitet
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne programmere algoritmer for søk og sortering. Lære å forstå
TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne programmere algoritmer for søk og sortering. Lære å forstå
MAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo 13. januar 2009 (Sist oppdatert: 2009-01-14 16:44) Velkommen
EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
Velkommen til MAT1030!
MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo Velkommen til MAT1030! 13. januar 2009 (Sist oppdatert:
Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema
va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: [email protected] Output Knuth : tillegg til å være et endelig sett med regler
MAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk
Morfologi i Binære Bilder III
Morfologi i Binære Bilder III Lars Vidar Magnusson March 28, 2017 Delkapittel 9.5 Some Basic Morphological Algorithms Boundary Extraction (Grenseuthenting) Vi kan hente ut grensen til et sett (boundary)
Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer
Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå, og kunne bruke, algoritmer
Pensum: fra boken (H-03)+ forelesninger
Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.
PG4200 Algoritmer og datastrukturer forelesning 3. Lars Sydnes 29. oktober 2014
PG4200 Algoritmer og datastrukturer forelesning 3 Lars Sydnes 29. oktober 2014 Plan Måling av kjøretid (delvis repetisjon) Matematisk analyse av kjøretid Presentasjon av innlevering 1 I Innlevering 1 Innlevering
INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde ([email protected])
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 9. august, 07 Eksamenstid
EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
MAT1030 Plenumsregning 1
MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte
TDT4105 Informasjonsteknologi, grunnkurs
1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Anders Christensen ([email protected]) Rune Sætre ([email protected]) TDT4105 IT Grunnkurs 2 Pensum Matlab-boka: 12.3 og 12.5 Stoffet
Løsningsforslag - Parallellitet og repetisjon
Sist endret: 17.08.2010 Hovedside FAQ Beskjeder Timeplan Ukeplan Øvinger Gruppeøving Eksamensoppgaver Pensum Notater Kode/koding Ordliste Kontakt Eksterne ressurser IDI NTNU Utskriftsversjon Løsningsforslag
Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen
Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Terje Rydland - IDI/NTNU 2 Datastruktur: Dictionaries Kap 9.1 Dictionary er et objekt som lagrer en samling
ALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE
Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder
Grådige Algoritmer Lars Vidar Magnusson 12.3.2014 Kapittel 16 Grådige algoritmer Aktivitetvelgingsproblemet Huffmankoder Ideen bak Grådige Algoritmer Ideen bak grådige algoritmer er å løse optimaliseringsproblem
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 13: Dynamisk programmering (Ifi, UiO) INF2220 H2017, forelesning 13 1 / 30 Dagens plan Dynamisk
Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3
Delkapittel 1.3 Ordnede tabeller Side 1 av 70 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 1.3 Ordnede tabeller 1.3.1 Permutasjoner En samling verdier kan settes opp i en rekkefølge. Hver
Norsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk
INF0: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk Mathias Lohne mathialo Rekursjonseksempel Eksempel Finn kjøretid for følgende program: (Ex11 b) 1 float foo(a) { n = Alength; 3 4 if
MAT1030 Diskret matematikk
MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang
Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering
Hashtabeller Lars Vidar Magnusson 12.2.2014 Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Dictionaries Mange applikasjoner trenger dynamiske sett som bare har dictionary oparsjonene
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 6: Grafer Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 1 / 31 Dagens plan:
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
PG4200 Algoritmer og datastrukturer Forelesning 2
PG4200 Algoritmer og datastrukturer Forelesning 2 Lars Sydnes, NITH 15. januar 2014 I. Forrige gang Praktisk eksempel: Live-koding II. Innlevering Innlevering 1 2.februar Offentliggjøring: 22.januar Innhold:
Eksamen i tdt4120 Algoritmer og datastrukturer
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 5 Oppgavestillere: Magnus Lie Hetland Jon Marius Venstad Kvalitetskontroll: Magnar Nedland Faglig
Grunnleggende Grafalgoritmer II
Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først
Pattern matching algorithms. INF Algoritmer og datastrukturer. Lokalisering av Substrenger. Brute force
Pattern matching algorithms INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo Algoritmer for lokalisering av substrenger Brute force Enkleste tenkelige
EKSAMEN. Emne: Algoritmer og datastrukturer
1 EKSAMEN Emnekode: ITF20006 000 Dato: 19. mai 2010 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet
Algdat - øvingsforelesning
Algdat - øvingsforelesning Dynamisk programmering Nils Barlaug Dagens plan 1. 2. 3. 4. Praktisk og dagens plan LF øving 8 a. Teori b. Praksis Dynamisk programmering a. Introduksjon b. Rod Cutting c. Matrise-multiplikasjon
Oppgave 1. Sekvenser (20%)
Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet
INF2220: Forelesning 1
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid Chieh Yu de Vibe ([email protected])
Divide-and-Conquer II
Divide-and-Conquer II Lars Vidar Magnusson 1712014 Kapittel 4 Analyse av divide-and-conquer algoritmer ved hjelp av rekursjonstrær Analyse av divide-and-conquer algoritmer ved hjelp av masterteoremet Løse
Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:
Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et
Løsningsforslag til eksamen i PG4200 Algoritmer og datastrukturer 10. desember 2014
Løsningsforslag Dette er et utbygd løsningsforslag. D.v.s at det kan forekomme feil og at løsningene er mer omfattende enn det som kreves av studentene på eksamen. Oppgavesettet består av 5 (fem) sider.
Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
MAT1030 Diskret matematikk
Oppgave 1.1 MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Modifiser algoritmen fra 1.2.1 slik at
Algoritme-Analyse. Asymptotisk ytelse. Sammenligning av kjøretid. Konstanter mot n. Algoritme-kompeksitet. Hva er størrelsen (n) av et problem?
Hva er størrelsen (n) av et proble? Algorite-Analyse Algoriter og Datastrukturer Antall linjer i et nettverk Antall tegn i en tekst Antall tall so skal sorteres Antall poster det skal søkes blant Antall
Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.
TDT445 Øving 4 Oppgave a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. Nøkkel: Supernøkkel: Funksjonell avhengighet: Data i en database som kan unikt identifisere (et sett
Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000
Drosjesentralen I-120: Obligatorisk oppgave 2, 2000 Frist Mandag 20. November 2000 kl.10:00, i skuff merket I120 på UA. Krav Se seksjon 4 for kravene til innlevering. Merk krav om generisk løsning for
Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 18. mai 1993 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: IN 110 Algoritmer
ALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 1 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE
Introduksjon til Algoritmeanalyse
Introduksjon til Algoritmeanalyse 26. August, 2019 Institutt for Informatikk 1 Hvordan skal vi tenke i IN2010? Effektive løsninger Hvordan skalérer problemet og løsningen? 2 Terminologi Betegnelse Problem
MAT1030 Diskret matematikk
MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Oppgave 1.1 Modifiser algoritmen fra 1.2.1 slik at
Øvingsforelesning 6. Sorteringsalgoritmer. Martin Kirkholt Melhus Basert på foiler av Kristian Veøy 30/09/14 1
Øvingsforelesning 6 Sorteringsalgoritmer Martin Kirkholt Melhus [email protected] Basert på foiler av Kristian Veøy 30/09/14 1 Agenda l Spørsmål fra øving 4 l Sortering l Presentasjon av øving 6 30/09/14
Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
Når Merge sort og Insertion sort samarbeider
Når Merge sort og Insertion sort samarbeider Lars Sydnes 8. november 2014 1 Innledning Her skal vi undersøke to algoritmer som brukes til å sortere lister, Merge sort og Insertion sort. Det at Merge sort
Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Terje Rydland - IDI/NTNU 2 Datastruktur: Dictionaries Kap 9.1 Dictionary er et objekt som lagrer en samling
Sorteringsproblemet. Gitt en array A med n elementer som kan sammenlignes med hverandre:
Sortering Sorteringsproblemet Gitt en array A med n elementer som kan sammenlignes med hverandre: Finn en ordning (eller permutasjon) av elementene i A slik at de står i stigende (evt. avtagende) rekkefølge
