Dagens tema. Sortering. Fortsettelse om programmering vha tråder.
|
|
|
- Ragnhild Aronsen
- 8 år siden
- Visninger:
Transkript
1 Dagens tema Sortering. Fortsettelse om programmering vha tråder.
2 «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære trær søketrær [email protected] INF april 2010 (uke 15) 2
3 Forutsetter at vi kan rangere elementene. Gitt to elementer, programmet må kunne teste om det ene elementet er lik, mindre enn eller større enn det andre, jf. grensesnittet Comparable med metoden compareto... I eksemplene sorterer vi ofte enkle «objekter» som heltall, tegn eller strenger. Ikke vanskeligere å sortere komplekse objekter så lenge de er «sammenlignbare». Litt mer formaliteter: Med en sortert array mener vi en array (A) der A[0] A[1] A[2] A[3] A[n 2] A[n 1] [email protected] INF april 2010 (uke 15) 3
4 1. Sorterering ved bruk av binærtre som «mellomlager» Programmeringsidé: Sett objektene inn i et binært søketre. Etter at alle er satt inn, ta dem ut i sortert orden (hvordan?) og sett dem inn i arrayet i sortert orden. [email protected] INF april 2010 (uke 15) 4
5 INF april 2010 (uke 15) 5
6 INF april 2010 (uke 15) 6
7 INF april 2010 (uke 15) 7
8 INF april 2010 (uke 15) 8
9 INF april 2010 (uke 15) 9
10 INF april 2010 (uke 15) 10
11 INF april 2010 (uke 15) 11
12 INF april 2010 (uke 15) 12
13 INF april 2010 (uke 15) 13
14 INF april 2010 (uke 15) 14
15 INF april 2010 (uke 15) 15
16 INF april 2010 (uke 15) 16
17 INF april 2010 (uke 15) 17
18 INF april 2010 (uke 15) 18
19 INF april 2010 (uke 15) 19
20 INF april 2010 (uke 15) 20
21 INF april 2010 (uke 15) 21
22 INF april 2010 (uke 15) 22
23 INF april 2010 (uke 15) 23
24 INF april 2010 (uke 15) 24
25 kryss INF april 2010 (uke 15) 25
26 kryss INF april 2010 (uke 15) 26
27 kryss INF april 2010 (uke 15) 27
28 kryss INF april 2010 (uke 15) 28
29 kryss INF april 2010 (uke 15) 29
30 kryss INF april 2010 (uke 15) 30
31 kryss INF april 2010 (uke 15) 31
32 kryss INF april 2010 (uke 15) 32
33 kryss INF april 2010 (uke 15) 33
34 kryss INF april 2010 (uke 15) 34
35 kryss INF april 2010 (uke 15) 35
36 2. Boblesortering Idé: Gå igjennom arrayet og for hver gang man finner to elementer ved siden av hverandre som ligger feil i forhold til sorteringskriteriet, bytt dem. Gjenta gjennomgangen til ingen bytter blir gjort. Påstand: Hvis det ikke finnes to elementer ved siden av hverandre som ikke oppfyller sorteringsregelen, må hele arrayen være sortert. [email protected] INF april 2010 (uke 15) 36
37 3. Flettesortering Algoritmeidé: Del arrayen opp i delarrayer, slik at hver delarray er sortert (et array med ett element er sortert). Flett sammen to og to arrayer til større sorterte delarrayer til det er et array igjen. [email protected] INF april 2010 (uke 15) 37
38 4. Innstikksortering Generell idé: Plukk ett og ett element fra listen og sett det inn på rett plass (sortert) i en ny liste. 1. Finn første element fra venstre som er mindre enn det til venstre for seg ta dette ut. 2. Elementene til venstre for dette skyves mot høyre inntil det uttatte elementet «passer inn». 3. Gjenta 1 2 inntil det siste elementet (helt til høyre) er behandlet. Invariant: A[0 : k] er sortert for k som løper fra 0 til lengden av A 1. [email protected] INF april 2010 (uke 15) 38
39 I programeksemplet nedenfor sorteres et array av tegn, char[] a. void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 39
40 a c d g h n q e u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 40
41 e a c d g h n q e u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 41
42 e a c d g h n q q u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 42
43 e a c d g h n n q u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 43
44 e a c d g h h n q u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 44
45 e a c d g g h n q u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 45
46 e a c d e g h n q u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 46
47 a c d e g h n q? u s o r t e r t void innstikksortering ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { i f ( a [ k + 1] < a [ k ] ) { // a[ k + 1] står på f e i l plass char tmp = a [ k + 1 ] ; int i = k ; while ( i >= 0 && a [ i ] > tmp) { // a[ i ] > tmp, f l y t t t i l høyre a [ i + 1] = a [ i ] ; i ; // s e t t tmp på rett plass a [ i +1] = tmp; [email protected] INF april 2010 (uke 15) 47
48 En bedre variant? void innstikksorteringvar1 ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { \\ n = a. length 1 \\ A[ 0 : k 1] har de minste elementene og er sortert \\ finner minste element i A[ k : n] på plass j \\ bytt A[ k ] med A[ j ] \\ resultat : A[ 0 : k ] har de minste elementene og er sortert [email protected] INF april 2010 (uke 15) 48
49 Programmerer ut løkka som finner minste element i A[k : n]: void innstikksorteringvar1 ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { \\ n = a. length 1 \\ A[ 0 : k 1] har de minste elementene og er sortert int minsthittil = A[ k ] ; j = k ; for ( int i = k ; i < a. length 1; i ++) i f (A[ i ] < minsthittil ) { minsthittil = A[ i ] ; j = i ; \\ bytt A[ k ] med A[ j ] \\ resultat : A[ 0 : k ] har de minste elementene og er sortert [email protected] INF april 2010 (uke 15) 49
50 Programmerer ut byttet som medfører at den sorterte delen øker med ett element: void innstikksorteringvar1 ( char [ ] a ) { for ( int k = 0; k < a. length 1; k++) { \\ A[ 0 : k 1] har de minste elementene og er sortert int minsthittil = A[ k ] ; j = k ; for ( int i = k ; i < a. length 1; i ++) i f (A[ i ] < minsthittil ) { minsthittil = A[ i ] ; j = i ; int tmp = A[ k ] ; A[ k ] = A[ j ] ; A[ j ] = tmp; \\ A[ 0 : k ] har de minste elementene og er sortert \\ A[ 0 :n] har de minste elementene og er sortert [email protected] INF april 2010 (uke 15) 50
51 Tilstandspåstander Java datastrukturdiagrammer A[0 : k] er sortert i : 0 i < k : A[i] A[i + 1] Alle elementer i A[k : l] er mindre enn alle elmentene i A[m : n] k i l, m j n : A[i] < A[j] Lista inneholder aldri mer enn n objekter... [email protected] INF april 2010 (uke 15) 51
52 Invariante tilstandspåstander påstander som ikke forandrer seg Det er aldri et ulovlig tall i en rute i sudokubrettet A[0 : k] er sortert er en invariant påstand hvis sannhetsverdien ikke forandrer seg når k endrer verdi.... [email protected] INF april 2010 (uke 15) 52
53 Om effektivitet Ikke viktig i INF1010, men vi skal se opp for lange løkker inni hverandre flere rekursive kall i en metode n! når n er stor multiplisering av objekter (metodekall og tråder) uten øvre grense Men effektivitet er et hovedkriterium når vi skal velge lage et godt program/algoritme. [email protected] INF april 2010 (uke 15) 53
54 Programmeringsøvelser til plenumsøvelsen 1. Gjør skriv-metoden i binærtreeksemplet om slik at den istedet leverer en array med objektene i sortert rekkefølge. 2. Skriv en metode som tar to sorterte arrayer som parameter og returnerer en sortert array ved å flette dem sammen. 3. Skriv en metode som boblesorterer et heltallsarray. 4. Skriv en metode som sorterer etter følgende idé (innstikksortering. Invariant?): 4.1 Finn det minste elementet i arrayen ta dette ut. 4.2 Sett det uttatte elementet i fifo-orden inn i et nytt array. 4.3 Gjenta inntil det siste elementet i det første arrayet er tatt ut. [email protected] INF april 2010 (uke 15) 54
Dagens 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»
Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010
Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering
Rekursjon. 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
Quicksort. Fra idé til algoritme.
Quicksort Fra idé til algoritme. Quicksortalgoritme algoritmeidé 1. Del arrayen i to deler, slik at alle elementer i den ene delen er mindre enn alle elementer i den andre delen. Q U I C K S O R T A L
En 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
INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013
Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du
INF1010 Binære søketrær ++
INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010
UNIVERSITETET 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:
INF1010 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
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.
Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.
Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null [email protected] INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
Operasjoner på lenkede lister (enkeltlenket) Eksempel på en lenket liste: personliste. INF januar 2010 (uke 3) 2
Velkommen til INF1010 Studieaktiviteter i INF1010 Programmering (oppgaveløsning) alene/kollokvier programmeringslab (plenums)øvelser forelesninger gruppe som repeterer stoff fra forelesning, og øvelser
Lenkelister. Lister og køer.
Lenkelister. Lister og køer. INF1010 Stein Michael Storleer 27. januar 2011 Dagens forelesning Lenkede lister Lenkede lister Eksempel på en lenket liste: personliste Operasjoner på lenkede lister (enkeltlenket)
Definisjon 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
EKSAMEN. 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
Dagens 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
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
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
Binæ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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
INF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken [email protected] 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
INF 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
INF110 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
Logaritmiske sorteringsalgoritmer
Logaritmiske sorteringsalgoritmer Logaritmisk sortering Rekursive og splitt og hersk metoder: Deler verdiene i arrayen i to (helst) omtrent like store deler i henhold til et eller annet delingskriterium
Definisjon: 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
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])
INF 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
Binæ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(?):
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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveksamen i INF1010 Objektorientert programmering Dato: 26. mai 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider.
Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b
Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv
Oppgavesettet 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
Løsnings forslag i java In115, Våren 1996
Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
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
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
Datastrukturer 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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 4. juni 2015 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider. Vedlegg:
Innhold. Innledning 1
Innhold Innledning 1 1 Kompleksitetsanalyse 7 1.1 Innledning.............................. 8 1.2 Hva vi beregner........................... 8 1.2.1 Enkle operasjoner...................... 8 1.2.2 Kompleksitet........................
INF 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
Rekursiv programmering
Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man
Løsnings forslag i java In115, Våren 1998
Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker
INF 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
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
UNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer
INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012
INF1000 - Uke 10 Løsningsforslag ukesoppgaver 10 24. oktober 2012 Løsningsforlag Oppgave 1 Array vs. HashMap a) Følgende program viser et enkelt banksystem med en array kontoer[], og metoder for å finne
Rekursjon. Hanois tårn. Milepeler for å løse problemet
Rekursjon. Hanois tårn. Milepeler for å løse problemet Hanois tårn. Milepeler for å løse problemet Forstå spillet Bestemme/skjønne hvordan spillet løses Lage en plan for hva programmet skal gjøre (med
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 Eksamen
Eksamen - Algoritmer og datastrukturer - Høgskolen i Oslo og Akershus - 27.11.2012 Side 1 av 6 Algoritmer og datastrukturer Eksamen 27.11.2012 Eksamensoppgaver Råd og tips: Bruk ikke for lang tid på et
Binæ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
INF2220: 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
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene
Vanlige datastrukturer. I dette lysarksettet
Vanlige datastrukturer I dette lysarksettet datastrukturer Datastrukturer i Med datastruktur mener vi måten objektene i et program er strukturert på. Særlig blir det aktuelt å snakke om struktur hvis vi
Selv-balanserende søketrær
Selv-balanserende søketrær Georgy Maksimovich Adelson-Velsky Evgenii Mikhailovich Landis Søketrær og effektivitet O(log n) effektivitet av binære søketrær kan ikke garanteres Treet til venstre har høyde
Kapittel 9: Sortering og søking Kort versjon
Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
Heap 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
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.
Algoritmer 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.
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
O-notasjon og kompleksitet
1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: [email protected] Tlf:
Palindrom - iterativt
1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: [email protected] Tlf:
IN 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
Norsk informatikkolympiade runde
Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
Norsk informatikkolympiade runde
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009
Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen
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
Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
Obligatorisk oppgave 4 i INF1010, våren 2014: "Leger og resepter" Versjon 1.1
Obligatorisk oppgave 4 i INF1010, våren 2014: "Leger og resepter" Versjon 1.1 Denne oppgaven skal løses to og to vha. systemutviklingsmetoden Parprogrammering. For å få levere må alle registrere seg gjennom
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00
INF1010. Om pensum INF1010 INF1010 INF1010 INF1010. Det vesentlige er å forstå og kunne lage programmer ved hjelp av eksemplene i bøkene.
Om pensum Dagens forelesning handler om (de to datastrukturene) lister og binære trær. Etter forelesningen skal studentene kjenne til datastrukturene lister og binære trær og kunne lage programmer som
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
Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
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
UNIVERSITETET 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.
< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" [email protected] INF1010 21. februar
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
INF Uke 11. Ukeoppgaver oktober 2012
INF1000 - Uke 11 Ukeoppgaver 11 30. oktober 2012 Vanlige ukesoppgaver Oppgavene denne uken omhandler de temaene vi har hatt om til nå. Denne uken er det en del oppgaver om det å manipulere tekst på ulike
Repetisjon: 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
Løsningsforslag til INF110 h2001
Løsningsforslag til INF110 h2001 Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider inkludert vedlegget Vedlegg
Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn
Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og
