Inf 1020 Algoritmer og datastrukturer
|
|
- Ann Lund
- 7 år siden
- Visninger:
Transkript
1 Inf 1020 Algoritmer og datastrukturer Et av de mest sentrale grunnkursene i informatikkutdanningen... og et av de vanskeligste! De fleste 3000-kursene i informatikk bygger på Inf1020 Kurset hever programmering fra et håndtverk til et universitetsfag! Et arbeidskrevende modningsfag! Dere bør bruke tid på å løse oppgaver gjennom hele semesteret. Det gis 3 obliger. Den første gis i begynnelsen av september og skal besvares individuelt. De to neste gis i siste halvdel av semesteret og kan gjøres i grupper på 2 (eller alene). Sjekk fagets hjemmeside regelmessig. Forelesningsplanen kan bli endret underveis! Forelesninger og øvinger viser hva av pensum/læreboka som vi legger vekt på til eksamen Ark 1 av 31 Forelesning
2 Hva er en algoritme? Vanlig sammenligning: Oppskrift Input Algoritme Output Knuth : I tillegg til å være et endelig sett med regler som gir en sekvens av operasjoner for å løse en bestemt type problem, har en algoritme fem viktige kjennetegn: 1. Endelighet. 2. Definerthet. 3. Input. 4. Output. 5. Effektivitet. Donald E. Knuth: The Art of Computer Programming. Volume 1/Fundamental Algorithms. Forelesning Ark 2 av 31
3 Analyse av tidsforbruk Hvor mye øker kjøretiden når vi øker størrelsen på input? To typer analyse: Gjennomsnittlig tidsforbruk (average-case) Verste tilfelle (worst-case) Alternative metoder: Kode algoritmen og ta tiden for ulike størrelser på input. Finne en enkel funksjon som vokser på samme måte som eksekveringstiden til programmet. Forelesning Ark 3 av 31
4 Eksempel: Oppslag i telefonkatalog Input: Telefonkatalog med n navn, et navn P på personen vi vil ringe til. Output: Nummeret til P (hvis det står i katalogen). Algoritme 1 Let gjennom katalogen fra begynnelsen og sammenlign hvert navn med P. Tidsforbruk: I verste tilfelle må vi lete igjennom hele katalogen med n navn. Dette angir vi med O(n). Algoritme 2 (binær-søking) Sammenlign P med det midterste navnet i katalogen og finn hvilken halvdel P eventuelt står i. Let videre i denne halvdelen på samme måte. Tidsforbruk: For hver sammenligning halverer vi den delen av katalogen vi må lete i. Dette angir vi med O(log n). Forelesning Ark 4 av 31
5 Logaritmer Logaritmer har et grunntall X, for eksempel X = 2 eller X = 10. Vi bruker stort sett X = 2. Logaritmen til et tall B er det tallet A vi må opphøye grunntallet X i for å få B, det vil si: X A = B A = log X B Eksempler: 2 1 = 2 1 = log = 4 2 = log = 8 3 = log = 16 4 = log = = log = = log Forelesning Ark 5 av 31
6 O-notasjon Generelt er vi ikke interessert i nøyaktig hvor mye tid et program bruker, men heller prøve å angi i hvilken størrelsesorden løsningen ligger. Definisjon La T(n) være kjøretiden til programmet. T(n) =O(f(n)) hvis det finnes positive konstanter c og n 0 slik at T(n) c f (n) når n > n 0. O( f (n)) er da en øvre grense for kjøretiden. Problemet er å finne en f (n) som er minst mulig. O-notasjon er en veldig grov måte å angi tidsforbruk på, og vi forkorter så mye som mulig. Merk at konstanter allerede ligger i definisjonen. Forelesning Ark 6 av 31
7 Vanlige funksjoner for O( ) Funksjon Navn 1 Konstant log n Logaritmisk n Lineær nlogn n 2 Kvadratisk n 3 Kubisk 2 n,n! Eksponensiell Med input n = 10 5 og 10 6 operasjoner pr. sekund får vi flg. eksekveringstider: Funksjon Navn sek. log n 1, sek. n 0,1 sek. nlogn 1,2 sek. n 2 2,8 timer n 3 31,7 år 2 n mer enn et århundre Forelesning Ark 7 av 31
8 Eksempler: n/2, n, 2n er alle O(n). n 2 + n + 1 regnes som O(n 2 ). log 2 n,oglog 10 n skilles bare av en konstant, begge angis med O(log n). Enkel beregning av tid Enkel setning: x=y+z; Enkel for-løkke: for (int i = 0; i < n; i++) { brukt[i] = false; Forelesning Ark 8 av 31
9 Nestede for-løkker: for (int i = 0; i < n; i++) { for (int k = 0; k < n; k++) { avstand[i][k] = 0; Sekvens av setninger: x=y+z; for (int i = 0; i < n; i++) { brukt[i] = false; Betinget setning: if (n < 0) { System.out.println( Ingen elementer ); else{ for (int i = 0; i < n; i++) { sum+=i; Forelesning Ark 9 av 31
10 Abstrakte datatyper En abstrakt datatype (ADT) er definert ved en mengde operasjoner og en spesifikasjon av hva disse operasjonene gjør. Dermed skilles definisjonen av operasjonene i ADTen fra implementasjonsdetaljer. I Java er det naturlig å spesifisere en ADT som et interface og realisere dem som klasser som implementerer interfacet (NB! Læreboka gjør ikke dette!) (class ExImplem implements ExADT {... Semantikken til operasjonene i en ADT kan ofte tegnes En god ADT støttes opp av gode intuisjoner og har informative navn Gode valg av ADTer gjør en kode lett å lese og lett og forstå. Dette er kjennetegn ved god design! Å tenke i form av ADTer er en god tilnærming til programmering! Programming is the art of abstraction Forelesning Ark 10 av 31
11 Standard ADTer Noen ADTer er så vanlige at de har blitt standard innen databehandling. De er generelle og brukes i nesten alle programmer av en viss kompleksitet. I informatikk-faget er det basalkunnskap å kjenne til definisjonen av dem, standard implementasjoner og viktige eksempler på bruk. I kurset lærer vi de viktigste av disse fundamentale ADTene. For hver ADT skal vi se på: Betydningensemantikken) Operasjonene (grensesnittet) Forskjellige implementasjoner Tidsforbruket til operasjonene Eksempler på bruk Idag: lister, køer og stakker. Vi ser på både statiske og dynamiske implementasjoner og bruker O-notasjon til å angi deres kompleksitet. Forelesning Ark 11 av 31
12 ADT Liste ADTen liste modellerer det de fleste forbinder med begrepet liste, nemlig en liste av elementer: A 1, A 2,...,A n. Vi kan lage mange forskjellige ADTer for lister avhengig av hvilket grensesnitt vi definerer for den. Grensesnittet (dvs ADTen) definerer hvilke operasjoner vi kan utføre på lister, men sier ingenting om hvordan disse operasjonene blir utført. Legg merke til at det å finne ut en effektiv koding av operasjonene er en helt annen oppgave enn det å bruke dem! Forelesning Ark 12 av 31
13 Mulig grensesnitt for lister public interface ListeInterface { /* Sette inn et element på en gitt plass */ void insert(object x, int posisjon); /* Slette et gitt element fra listen */ void remove(object x); /* Sjekke om et element finnes i listen */ boolean find(object x); /* Få tak i elementet på en angitt plass */ Object findkth(int k); /* Skrive ut alle elementene i listen */ void printlist(); /* Sjekke om listen er tom */ boolean isempty(); /* Tømme (nullstille) listen */ void makeempty(); Forelesning Ark 13 av 31
14 I grensesnittet på forrige foil styres utskriften av listen fra listen selv. En mer generell løsning er å styre denne fra klassen som bruker listen (hvorfor?). Dette kan gjøres ved å bruke en iteratorklasse, f.eks. Java interface Enumeration med metodene public Boolean hasmoreelements() public Object nextelement() Vi kan da utvide ADT Liste med en metode public Enumeration elementer() Liste l = new KlasseSomImplementererListe();... Enumeration e=new l.elementer(); while ( e.hasmoreelements() ) { Object o=l.nextelement(); // Handling med o, f.eks. Sysem.out.println(o); Forelesning Ark 14 av 31
15 Array-implementasjon A1 A2 A3 A4 An insert: O(n). For eksempel vil innsetting først i listen føre til at vi må flytte alle de n-1 andre elementene ett hakk oppover i arrayen. remove: O(n) (tilsvarende som over). find: O(n) så bra som man kan forvente. findkth: O(1) positivt! printlist: O(n). isempty: O(1). makeempty: O(1). Problem: Arrayer kan ikke vokse dynamisk etter behov størrelsen må bestemmes når de opprettes. Ved overflow må vi enten lage en ny array og kopiere innholdet (en O(n)-operasjon) eller terminere programmet. Forelesning Ark 15 av 31
16 Pekerkjede-implementasjon A1 A2 A3 A4 Fjerning av element A3: A1 A2 A3 A4 Innsetting av element X: A1 A2 A3 A4 X class Node { Object element; Node neste; public Node(Object x, Node n) { element = x; neste = n; Forelesning Ark 16 av 31
17 insert: O(1) dersom vi allerede har funnet stedet der elementet skal settes inn. remove: O(1) (tilsvarende som for insert). find: O(n). findkth: O(n) må gå gjennom k-1 elementer for å komme til element k. printlist: O(n). isempty: O(1). makeempty: O(1). Dersom vi inkluderer tiden vi bruker på å finne riktig sted, blir innsetting og sletting O(n), men med svært liten konstant. MERK: Innsetting og sletting blir veldig raske i gjennomsnitt dersom vi som oftest setter inn først/tidlig i listen. Forelesning Ark 17 av 31
18 Alternative pekerkjede-implementasjoner Pekerkjede med hode: Hode A1 A2 A3 A4 Toveis pekerkjede: A1 A2 A3 A4 Sirkulær pekerkjede (med hode): Hode A1 A2 A3 A4 Toveis pekerkjede med hode og hale, toveis sirkulær pekerkjede... Variant: sortert liste Find blir fortsatt O(n) hvis vi bruker pekerkjede, men O(log n) hvis vi bruker array og binærsøk. Forelesning Ark 18 av 31
19 Stakker ADTen stakk modellerer det vi tenker på som en stabel av et eller annet, for eksempel tallerkner. Dette er en variant av lister, men i en stakk har vi bare lov til å sette inn og slette elementer fra en bestemt ende av listen. Inn Ut Eksempler: Metodekall i Java Enkle kalkulatorer En full buss Forelesning Ark 19 av 31
20 Stakk-grensesnitt public interface Stakk { /* Legge et element på toppen av stakken */ void push(object x); /* Fjerne et element fra toppen av stakken */ void pop(); /* Returnere elementet på toppen av stakken */ Object top(); /* Sjekke om stakken er tom */ boolean isempty(); Ofte vil pop også returnere elementet som fjernes. En stakk er det samme som en LIFO-liste ( Last In First Out ). Forelesning Ark 20 av 31
21 Array-implementasjon A4 A3 A2 A1 S stakktopp Brukes ofte hvis antall elementer på stakken alltid er begrenset. public void push(object x) { stakktopp++; S[stakkTopp] = x; public void pop() { stakktopp--; public Object top() { return S[stakktopp]; I tillegg: eventuell feilhåndtering. Forelesning Ark 21 av 31
22 Pekerkjede-implementasjon Datastruktur, push og pop Datastrukturen ser slik ut: S A4 A3 A2 A1 Innsetting og sletting vil (normalt) alltid skje på begynnelsen av listen: S A4 A3 A2 A1 X S A4 A3 A2 A1 Forelesning Ark 22 av 31
23 Implementasjon i Java public class PekerStakk implements Stakk { private class Node { Object element; Node neste = null; private Node topp = null; public PekerStakk() { topp = null; public void push(object x) { Node ny = new Node; ny.element = x; ny.neste = topp; topp = ny; public void pop() { if (topp!= null) topp = topp.neste; public Object top() { if (topp!= null) return topp.element; else return null; public Boolean isempty() { return topp == null; Forelesning Ark 23 av 31
24 Stakkoperasjonene - tidsforbruk Uansett hvor mange elementer vi har på stakken, er vi garantert konstant tidsforbruk, det vil si O(1) for alle operasjonene. Dette gjelder uansett om implementasjonen bruker en array eller en pekerkjede. Bedre er det ikke mulig å få det, derfor er stakken en veldig populær ADT. Samtidig kan mange naturlige problemer løses ved hjelp av en stakk. Typisk bruksmønster er mange stakk-operasjoner, men få elementer på stakken om gangen. På mange maskiner kan disse oversettes til kun to-tre instruksjoner i maskinkode. Forelesning Ark 24 av 31
25 Eksempel: Beregning av postfiks uttrykk På de fleste kalkulatorer skriver man inn regneuttrykkene på såkalt infiks form, med operatorene mellom argumentene: 4+2=6 3+5*2=13 (3 + 5) * 2 =16 Et alternativ er å skrive uttrykkene på postfiks form, der operatorene står etter argumentene. Med denne notasjonen slipper man å bruke parenteser: 42+=6 352*+= *=16 Forelesning Ark 25 av 31
26 Ved hjelp av en stakk er det lett å beregne et postfiks uttrykk på følgende måte: For hvert symbol i input: Hvis symbolet er et tall, legges det på stakken. Hvis symbolet er en operator, popper vi to tall fra stakken, anvender operatoren på disse to tallene og dytter svaret tilbake på stakken. Hvis input var et ekte postfiks uttrykk, vil nå svaret ligge som det eneste elementet på stakken. Eksempel: * +3+* Forelesning Ark 26 av 31
27 Køer ADTen kø modellerer stort sett det vi tenker på som en kø. En kø er en variant av en liste, men hvor vi setter inn elementer i den ene enden og tar ut elementer fra den andre enden: Inn Ut Bak Foran Mulig interface: public interface Koe { /* Legge til et element sist i køen (enqueue) */ void settinn(object x); /* Fjerne elementet først i køen (dequeue) */ Object taut(); /* Sjekke om køen er tom */ boolean isempty(); Dette kalles også en FIFO-liste ( First in First Out ). Forelesning Ark 27 av 31
28 Kø: Pekerkjede-implementasjon Vi har en enkel pekerkjede der vi har en ekstrapeker til siste element: ??? Hva bør være foran og bak i denne køen???? Hva blir tidsforbruket? Forelesning Ark 28 av 31
29 Kø: Array-implementasjon Vi har to heltallsvariable som peker på første og siste element i køen. Hvis køen lever lenge og det er mange inn/ut-operasjoner, kan vi nå enden av arrayen selv om det bare er noen få elementer i køen! Løsning: Bruk en såkalt sirkulær array, hvor pekerne flyttes tilbake til begynnelsen etter at de har nådd enden av arrayen. Det kan bli litt fiklete kode, men operasjonene er veldig tidseffektive. Forelesning Ark 29 av 31
30 Eksempel: Palindromer Palindromer er ord/uttrykk/setninger som er like forlengs og baklengs. Kjente eksempler: Otto ABBA Radar Svensk: Ni talar bra latin Dansk: En af dem der red med fane Engelsk: If I had a Hi-fi Hvordan sjekke om en gitt tekst-streng er et palindrom? Forelesning Ark 30 av 31
31 Mulig løsning 1. Les tekst-strengen inn i både en stakk og en (FIFO-)kø. 2. Sammenlign innholdet i stakken og køen tegn for tegn. public void sjekkpalindrom(string setning, Stakk s, Koe q) { while (! setning.equals("")) { char bokstav = setning.charat(0); setning = setning.substring(1); if (! Character.isWhitespace(bokstav)) { q.settinn(new Character(bokstav)); s.push(new Character(bokstav)); while (! q.isempty()) { if (!q.taut().equals(s.top()) ) { System.out.println("Dette er ikke et palindrom."); System.exit(1); s.pop(); System.out.println("Gratulerer, dette er et palindrom"); Forelesning Ark 31 av 31
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: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler
DetaljerINF 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
DetaljerRepetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!
Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre
DetaljerINF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak
LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for
DetaljerINF2220: 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 (ragnhilk@ifi.uio.no)
DetaljerINF2220: 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 (ingridcy@ifi.uio.no)
DetaljerINF2220: Forelesning 1
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) Rekursjon (kapittel 1.3) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid
DetaljerDagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær
Dagens tema INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 2: Binærtrær og abstrakte datatyper (ADT) Kort repetisjon Generelle trær
Detaljer... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved
Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)
DetaljerDagens tema INF1010 INF1010 INF1010 INF1010
I eksemplene om lister og binære trær har vi hittil hatt pekerne inne i objektene i strukturen. ( Innbakt struktur ).Eksempel: Dagens tema Implementasjon av strukturer (lister, binære trær) class { ; ;
DetaljerStack. En enkel, lineær datastruktur
Stack En enkel, lineær datastruktur Hva er en stack? En datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi
DetaljerListe som abstrakt konsept/datatype
Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert
DetaljerHva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen
Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerHva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen
Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerLø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
DetaljerINF2220: Forelesning 2
INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor
DetaljerOppgave 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
DetaljerNy/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
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerHva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist
Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar
DetaljerHva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist
Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar
DetaljerHeap* 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
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /
DetaljerUNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220
DetaljerHeap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock
Heap og prioritetskø Marjory the Trash Heap fra Fraggle Rock Binær 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
DetaljerOppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.
Høgskoleni Østfold EKSAMEN Emnekode: Emnenavn: ITF20006 Algoritmer og datastrukturer Dato: Eksamenstid: 9. mai 2016 9.00 13.00 Hjelpemidler: Faglærer: Alle trykte og skrevne Jan Høiberg Om eksamensoppgaven
DetaljerINF januar 2015 Stein Michael Storleer (michael) Lenkelister
INF1010 29. januar 2015 Stein Michael Storleer (michael) Lenkelister Lenke + lister = lenkelister Vi starter med lenkeobjektene Lager en kjede av objekter ved hjelp av pekere class { ; Legger Jl data innholdet
DetaljerEKSAMEN Løsningsforslag. med forbehold om bugs :-)
1 EKSAMEN Løsningsforslag med forbehold om bugs :-) Emnekode: ITF20006 000 Dato: 20. mai 2011 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater
DetaljerGrunnleggende Datastrukturer
Grunnleggende Datastrukturer Lars Vidar Magnusson 7.2.2014 Kapittel 10 Stakker og køer Lenkede lister Pekere og objekter Trerepresentasjoner Datastrukturer Vi er i gang med tredje del av kurset hvor vi
DetaljerAlgoritmer - 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
DetaljerAlgoritmeanalyse. (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
DetaljerAlgoritmer - 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
DetaljerEKSAMEN med løsningsforslag
EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.
DetaljerSø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
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerEKSAMEN. 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
DetaljerNy/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerPG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister
PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister Lars Sydnes, NITH 5. februar 2014 I. Implementasjoner Tabell-implementasjon av Stakk Tabellen er den lettest tilgjengelige datastrukturen
DetaljerLenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb
Lenkelister, iteratorer, indre klasser Repetisjonskurs våren 2018 kristijb Lenket liste av objekter Vi lager en lenke ved at objekter refererer til hverandre. Vanlige er ofte å ha Node-objekter som har
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 10. desember 1998, kl. 09.00-15.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerINF1020 Algoritmer og datastrukturer. Dagens plan
Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser
DetaljerINF1010 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.
DetaljerRekursjon. Binærsøk. Hanois tårn.
Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til
DetaljerINF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:
TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer
DetaljerDatastrukturer for rask søking
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
DetaljerPG4200 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:
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerIntroduksjon 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
DetaljerBinær heap. En heap er et komplett binært tre:
Heap Binær 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 så langt til venstre som mulig
DetaljerEKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2008 kl 09.00 til kl 13.00 Hjelpemidler: 4 A4-sider (2 ark) med valgfritt innhold Kalkulator Faglærer: Mari-Ann
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning
DetaljerAlgoritmer og datastrukturer Løsningsforslag
1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave
DetaljerLøsningsforslag EKSAMEN
1 Løsningsforslag EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund
DetaljerAlgoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3
Delkapittel 4.3 En toveiskø (deque) Side 1 av 5 Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3 4.3 En toveiskø (deque) 4.3.1 Grensesnittet Toveiskø En stakk kan godt ses på som en kø der vi
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning
DetaljerBinære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen
Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
DetaljerDagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær
Dagens plan: INF2220 - lgoritmer og datastrukturer HØTEN 2007 Institutt for informatikk, Universitetet i Oslo (kap. 4.7) (kap. 12.2) Interface ollection og Iterator (kap. 3.3) et og maps (kap. 4.8) INF2220,
DetaljerINF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)
INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning
DetaljerINF2220: Forelesning 2
INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre
DetaljerDagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerAlgoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1
Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27
DetaljerEKSAMEN. Emne: Algoritmer og datastrukturer
1 EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet
DetaljerINF 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:
DetaljerLøsnings forslag i java In115, Våren 1999
Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,
DetaljerObligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
DetaljerAlgoritmer og datastrukturer Kapittel 4 - Delkapittel 4.4
Delkapittel 4.4 En prioritetskø Side 1 av 8 Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.4 4.4 En prioritetskø 4.4.1 Grensesnittet PrioritetsKø En prioritetskø (engelsk: priority queue) er en
DetaljerEKSAMEN. 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
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
DetaljerAlgoritmer og Datastrukturer IAI 21899
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt
Detaljer... Dagens plan. Prioritetskø ADT
Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser
DetaljerEn implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {}
En implementasjon av binærtre Dagens tema Eksempel på binærtreimplementasjon Rekursjon: Tårnet i Hanoi Søking Lineær søking Klassestruktur hovedstruktur abstract class { class Person extends { class Binaertre
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerLøsningsforslag. Oppgave 1.1. Oppgave 1.2
Løsningsforslag Oppgave 1.1 7 4 10 2 5 9 12 1 3 6 8 11 14 13 Oppgave 1.2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 Oppgave 1.3 Rekursiv løsning: public Node settinn(person ny, Node rot) if (rot == null) return
DetaljerEKSAMEN. Algoritmer og datastrukturer
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer: Gunnar Misund
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerDefinisjon av binært søketre
Binære søketrær Definisjon av binært søketre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større
DetaljerDefinisjon: Et sortert tre
Binære søketrær Definisjon: Et sortert tre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større
DetaljerBinære trær: Noen algoritmer og anvendelser
Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):
DetaljerINF1010. Stein Michael Storleer (michael) Lenkelister
INF1010 Stein Michael Storleer (michael) Lenkelister Lenke Datastrukturen lenkeliste class { = null ; foran foran = new () ; class { = null ; foran foran = new () ; foran. = new () ; class { = null ; foran
DetaljerInnlevering 2b i INF2810, vår 2017
Innlevering 2b i INF2810, vår 2017 Dette er del to av den andre obligatoriske oppgaven i INF2810. Man kan oppnå 10 poeng for oppgavene i 2b, og man må ha minst 12 poeng tilsammen for 2a + 2b for å få godkjent.
DetaljerNotater til INF2220 Eksamen
Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
Detaljeralternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater
Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»
DetaljerLitt om Javas class-filer og byte-kode
Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet
DetaljerINF1010 siste begreper før oblig 2
INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av
DetaljerEksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
DetaljerDagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn
Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»
Detaljer