Rekursjon I. TRE AV REKURSIVE KALL, II. INDUKTIVE DATA TYPER IV. STABEL AV REKURSIVE KALL V. KORREKTHET. rekursjonsdybde terminering ordning
|
|
- Hedda Martinsen
- 7 år siden
- Visninger:
Transkript
1 Rekursjon I. TRE AV REKURSIVE KALL, rekursjonsdybde terminering ordning II. INDUKTIVE DATA TYPER og Rekursjon over slike III. SPLITT OG HERSK ROBLEMLflSNING P VED REKURSJON IV. STABEL AV REKURSIVE KALL iterasjon til rekursjon rekursjon implementert som iterasjon V. KORREKTHET terminering invarianter i-0 : H Rekursjon:
2 . En metode kaller seg selv /** en heltallsfunksjon fakultet (factorial (!)) defineres som * 0! = * (n+)! = (n+) * n! */ /** Algoritme som beregner fact(n) n >= 0 fact(n) ingen unntak **/ int fact( int n ) { int r = ; while (n > ) r = r * n; n = n ; return r; int fact( int n ) { if (n <= ) return ; else return n * fact( n ); fact(n) vil alltid terminere Hvorfor? Hva med: int hack( int n ) { if (n <= ) return ; else return n * hack( n+ ); i-0 : H Rekursjon:
3 . En metode kaller seg selv /** heltallsfunksjon fact (!): int fact( int n ) { * 0! = if (n <= ) return ; * (n+)! = (n+) * n! else return n * fact( n ); */ fact( 3 ) { n = 3 <= NEI 3 * 6 fact( ) { n = <= NEI * fact( ) { n = <= JA i-0 : H Rekursjon: 3
4 . Rekursjonstre og -dybde fact(0) = 0 fact(0) = fib(n+) = (n+) * fact(n) f(4) f(3) int fact(int n) { if (n <= ) return ; else return n * fact(n-); returner i basistilfelle f() ellers beregn rekursivt enklere (mindre) deler og sett disse sam- f(4)...? f(3)...? f()...? f()...? > > > 6 > 4 rekkef lgen av kall f() rekursjonsdybde #svarte = #r de linjer = # rekursive kall... inntil basistilfelle er nådd (=høyden av treet) 6 4 tre av rekursive kall
5 . Rekursjonstre og -dybde; Eks: Fibonacci-tallene fib(0) = 0 fib() = fib(n+) = fib(n) + fib(n+) f() f() f(3) f(0) 3 f() f(4) 5 f() int fib(int n) { if (n==0 n==) return ; else return fib(n-) + fib(n-); returner i basistilfelle f() f(0) ellers beregn rekursivt enklere (mindre) deler og sett disse sam- tre av rekursive kall f(4)...? f(3)...? rekkef lgen f()...? av kall f()...? > f(0)...? > > f()...? > > 3 f()...? f()...? > f(0)...? > > > 5 rekursjonsdybde #svarte = #r de linjer = # rekursive kall... inntil basistilfelle er nådd (=høyden av treet) i-0 : H Rekursjon: 5
6 Rekursjonstre og -dybde; Quicksort Rekursjon som en generell strategi for problemløsning og algoritmedesign Gitt en instans n av et problem P :. hva gjør jeg når n er basis tilfelle. hvordan konstruere løsning for n utfra løsninger for noen instanser mindre enn n P = sorter input array A /* int[] SS(int[] A,k) { * initielt kall med SS(A,0) * n = A.length; * if (k==n-) { return A; * else { * i= indeksen til minste elementet * i A[k...n-]; * bytt A[k] med A[i]; * return SS(A, k+); */ /* int[] QuickSort ( int[] A ) { * int n = A.length; * if (n == ) { return A; * else { * p = A[n/] pivot * t = [x : x ε A & x < p] og t3 = [x : x ε A & x > p]; * t = [x : x ε A & x = p] ; * sorter rekursivt begge (mindre) array * r = QuickSort ( t ) og * r3 = QuickSort ( t3 ) * return r + t + r3 * * */ i-0 : H Rekursjon: 6
7 QS [4 3 5] p=3 QS [ ] m= QS [] 3 QS [ 4 5 ] p=4 4 QS [5] QS ( Ar[l...h] ) n = Ar.lenght if (n == ) return Ar; else p = A[n/]; return QS ( Ar[< p] ) + Ar[= p] + QS ( Ar[> p] ) [ ] 3 + [ 4 5] + [ 3 4 5] i-0 : H Rekursjon: 7
8 * pre-, post- og (for binære trær) innorden + 3 inn(t) = if (T =! null) { inn(t.left) write(t.data) inn(t.right) + * 3 pre(t) = if (T =! null) { write(t.data) pre(t.left) pre(t.right) * + 3 post(t) = if (T =! null) { post(t.left) post(t.right) write(t.data) + 3 * innp(t) = if (T =! null) { write( ( ) innp(t.left) write(t.data) innp(t.right) write( ) ) ( ( () + () ) * (3) ) Skriv resultater av kallene inn(t), pre(t), post(t) for f lgende tr r T,T T * T * + * i-0 : H Rekursjon: 8
9 . Induktive Data Typer (vilkårlig store men endelige) Strukturell ordering naturlige tall N: basis: 0 er et N array av N: A(N) basis 0 -> N er A(N) hvis n er et N hvis [0...k] -> N er A(N) s er: n+ et N s er [0...k,k+] -> N en A(N) Lister av N: L(N): basis: null er en L(N) hvis s er: L er L(N) og n er N (n,l) en L(N) L L n 0 N 0... N k k+ n 0 N < < L 0... N k L < 0... N k k+ < n Bin re T r r av N: BT(N): basis: null er et BT(N) t n < t < hvis t, t er BT(N) og n er N t n n s er: (t, n, t) et BT(N) t t t t i-0 : H Rekursjon: 9
10 . Induktiv oppbygging -> rekursive beregninger induktiv definisjon = fra basis og oppover ***** rekursjon = fra toppen mot basis Nat int fib(n) { int fact(n) { basis: 0 if (n==0 n==) return ; if (n <= 0) return ; ind: n+ else return fib(n-) + fib(n-); else return n * fact(n-); Array[Int] void inc(int[] A, int k) { int sum(int[] A, int k) { basis: [0] -> Int A[k]++; if (k==0) return A[0]; ind: [0.. k-, k] -> Int if (k > 0) inc(a,k-); else return A[k] + sum(a,k-); Liste[Int] class LS { void inc(ls L) { int sum(ls L) { basis: null int n; if (L==null) { if (L==null) return 0; ind: (n,hale) LS hale; else { n++; else return inc(l.hale); sum(l.hale) + n; Bin rtt re[int] class BT { void inc(bt B) { int sum(bt T) { basis: null int n; if (T==null) { if (T==null) return 0; ind: (left,n,right) BT left; else {n++; else return BT right; inc(t.left); n + sum(t.left) + sum(t.right) ; inc(t.right); FRAKTALer i-0 : H Rekursjon: 0
11 Hva beregnes av følgende...? f (x: int) = if (x <= 0) then 0 else x + f(x ) ; f(n) =? f (x: int) = if (x <= 0) then 0 else x*x + f(x ) ; f(n) =? f (x: int) = if (x <= 0) then 0 else + f(x ) ; f(n) =? f (x: int) = if (x <= 0) then 5 else f(x ) ; f(n) =? f (x: int) = if (x <= 0) then else f(x ) + f(x ) ; f(n) =? f (x: int) = if (x <= 0) then else * f(x ) ; f(n) =? f (x: int) = if (x <= ) then 0 else + f(x ) ; f(n) =? Tegn tre av rekursive kall for hver f-funksjon ved kall f(3); Gjensidig rekursjon: (La [] betegne en tom liste mens x::xs en liste med x som f rste elementet etterfulgt av listen xs; f.eks. listen [,,3] kan skrives som ::::3::[].) flat( [] ) = [] flat( l::ls ) = aux( l, ls ) aux( [], ls ) = flat( ls ) aux( x::xs, ls ) = x :: aux( xs, ls ) Hva slags argument (av hvilken type) forventes av flat? Hva blir resultatet av flat( [ [,], [,3] ] ) ;? av flat( [ [,], [,3], [], [4,5,6] ] ) ;? i-0 : H Rekursjon:
12 3. Splitt og hersk (engelsk: Divide and Conquer) Rekursjon som en generell strategi for problemløsning og algoritmedesign Gitt en instans n av et problem P :. hva gjør jeg når n er basis tilfelle?. hvordan konstruere løsning for n utfra løsninger for noen instanser mindre enn n? P(n) = bergen n. hva gjør jeg når n = 0? returner 0 =. hvordan konstruere løsning for n utfra løsning for n? n = * n-, altså returner * P(n ) P(0) = P(x) = if (x=0) then P(n+) = * P(n) else * P(n )
13 3. Splitt og hersk (engelsk: Divide and Conquer) Rekursjon som en generell strategi for problemløsning og algoritmedesign Gitt en instans n av et problem P :. hva gjør jeg når n er basis tilfelle. hvordan konstruere løsning for n utfra løsninger for noen instanser mindre enn n P = finn et gitt element x i en array A Hvis A er usortert : Hvis A er sortert... sjekk A[n]; hvis x ikke er der, lett i A[0...n ] /* initielt kall med FE(A, x?, A.length ) */ int FE(int[] A, x. k) { if (k < 0 ) return ; else if (A[k]==x) return k; else return FE(A, x, k ); FE(A, 7, ) BS(A, 7, 0,) /* initielt kall med * BS(A, x?, 0, A.length) */ int BS(int[] A, x, l, h) { m = (l+h) / ; if (l > h) return -; else if (A[m] == x) return m; else if (A[m] < x) return BS(A, x, m+, h); else return BS(A, x, l, m );
14 3. Splitt og hersk (engelsk: Divide and Conquer) Rekursjon som en generell strategi for problemløsning og algoritmedesign Gitt en instans n av et problem P :. hva gjør jeg når n er basis tilfelle?. hvordan konstruere løsning for n utfra løsninger for noen instanser mindre enn n? P(s) = les input strengen tegn-for-tegn s lenge det er et siffer, og returner heltallet (samt resten av strengen): P( 0 ) = (0,[]), P( 0sd ) = (, sd ), P( abcd ) = (0, abcd ), osv.. hva er basistilfelle? s er tom, eller d::rest der tegnet d ikke er et siffer, hva gjør jeg da? returnerer det akkumulerte resultatet og resten av strengen P(i, []) = (i, []) P(i, d::rest) = (i, d::rest). hvordan konstruere løsning for d::rest utfra løsning for rest (når d er et siffer)? i*0 + d er den nye akkumulerte tallverdien fortsett med P(i*0 + d, rest) parseint(s:string) = first( P(0,s) ); P(i,[]) = ( i, [] ) P(i,d::rest) = if (not digit(d)) then ( i, d::rest ) else P( i*0 + int(d), rest )
15 4. Iterasjon til rekursjon n > n */ int sumiter(int n) { int res =0; while (n > 0) { res = res + n; n = n ; return res; n > n */ int sumrek(int n) { if (n == 0) return 0; else return n + sumr(n-); Generellt, dog ikke 00% riktig: int Iter(int n) { res= init; while ( fortsett(n) ) { res= Kroppen(n,res); oppdater(n); return res; int Rekursiv(int n) { if (!fortsett(n) ) return basetilfelle / init; else return Kroppen(n, Rekursiv(oppdater(n))); Enhver iterasjon kan skrives som rekursjon... t.o.m. som hale-rekursjon
16 4a. Rekursjon implementeres med en stabel public int fact( int n ) { if (n <= ) return ; else return n * fact( n ); n = fact( ) fact( 3 ) { 6 n = 3 <= NEI 3 * n *? fact( ) { n = <= NEI * n *? n = fact( ) n = 3 fact( 3 ) n *? n = fact( ) n *? n = 3 fact( 3 ) n *? n = 3 fact( 3 ) 6 fact( ) { n = <= JA
17 Method Stack main( ) { int n=5; int z=; 8 int a= aa(z); int aa(int z) { int m=3; 96 bb(...); return 8; 0 void bb(...) { main( ) { int n=5; int z=; int a= aa(z) 8 PC= 0 bb(... ) m = 3 z = PC= 96 aa() m = 3 z = PC= 96 aa() z = z = aa( ) { n = 5 n = 5 PC= 8 PC= 8 z = ; main( ) main( ) int m=3; bb(...) return 8; bb(... ) { a = 8 z = n = 5 PC= 8 main( )
18 Kompleksitet av en rekursiv funksjon avhenger av Analyse vha REKURSJONSTRE størrelsen på steget i hvert rekursivt kall (høyden av treet) antall rekursive kall i hvert steg ( bredden av forgreninger) arbeidsmengden ved sammensetting av resultater fra rekursive kall. Anta dette O() i eksemplene under. R(n) har rekursive kall til R(n-) R(n+) = R(n) + R(n) O( n+ ) R(n) har 3 rekursive kall til R(n-) R(n+) = R(n) + R(n) + R(n) O(3 n+ ) R(n) har rek. kall til R(n-) R(n+) = R(n) + c O(n) h= 3 0 h= 3 0 h= 3 0 R(n) har rek kall til R(n-) og R(n-) R(n+) = R(n+) + R(n) O(.6 n ) h= 3 0 Fibonacci kan dog forenkles til: O(n) R(n) har rek. kall til R(n/) R(n) = R(n/) + R(n/) log(n)+ = n- = O(n) h= 3 for n (n/) (n/4) 0 (n/8) i-0 : H Rekursjon: 8
19 5. Korrekthet Gitt en instans n av et problem P :. hva gjør jeg når n er basis tilfelle. hvordan konstruere løsning for n utfra løsninger for noen instanser mindre enn n P(n) if Basis(n) return??? Terminering: P(n) if Basis(n) stopper rekursjon Korrekthet: P(n) if Basis(n) kontroller korrekt utførelse else return Kombiner(P(m)... P(mk)) else garanter at hver mi < n, er nærmere Basis kombinasjon opprettholder rekursjons-invariant else HER MÅ VI VISE HVIS -> SÅ HVIS hvert rekursivt kall P(mi) returnerer riktig resultat!!! DET OVENSTÅENDE ANTAR VI!!! SÅ gir Kombiner(P(m)... P(mk)) riktig resultat i-0 : H Rekursjon: 9
20 5. Korrekthet Gitt en instans n av et problem P :. hva gjør jeg når n er basis tilfelle. hvordan konstruere løsning for n utfra løsninger for noen instanser mindre enn n sum(n) if n == 0 return 0 else return n + sum(n ) Terminering: sum(n) if n <= stopper rekursjon else hver n < n, er nærmere Basis Korrekthet: sum(n) if n == 0 resultat er 0 : i = 0 i = 0 else HER MÅ VI VISE HVIS -> SÅ HVIS rekursivt kall sum(n ) returnerer riktig resultat!!! DET OVENSTÅENDE ANTAR VI!!! 0 kombinasjon opprettholder sum(n) = n i = 0 i SÅ gir n + sum(n ) riktig resultat : i = n + n i = 0 n i = 0 i
21 Korrekthet: rekursjons-invariant /* int[] QS(int[] A) { int n= A.length; * if (n == ) { return A; * else { * velg pivot p ε A og * del A i : * A= { xεa x p og A = { xεa x > p; * sorter rekursivt (mindre) delene * r= QS(A) og * r= QS(A) * return r + r */ Invariant: QS(A) returnerer sortert argument A: if n== da er A sortert else deler A i to disjunkte deler A= { xεa x p og A = { xεa x > p r= QS(A) returnerer sortert A r= QS(A) returnerer sortert A men da er r+r sortert siden A < A /* int[] MS(int[] A) { int n= A.length; * if (n == ) { return A; * else { * del A i midten i : * A= A[0...n/] og A = A[n/+...n]; * sorter rekursivt (mindre) delene * r= MS(A) og * r= MS(A) * return flettet resultat av * rekursive kall FL(r,r) */ Invariant:... if lgh== da er A... else deler A i to disjunkte deler A= A[0...n/] og A= A[n/+...n] r= MS(A)... r= MS(A)... hvis... så returnerer hele else-grenen sortert A i-0 : H Rekursjon:
22 Korrekthet: rekursjons-invariant /* int BS(int[] A, int x, int l, int h) { * int m= (l+h) / ; * if (l > h) return ; * else if (A[m] == x) return m; * else if (A[m] < x) return BS(A, x, m+, h); * else return BS(A, x, l, m ); */ Invariant: argumentet A er sortert & er x i A, så er den mellom [l... h] (initielt kall med (A, x, 0, A.length-) if l > h x kan ikke være der ( er riktig) else if A[m] = x da har vi funnet den (m er riktig) else if A[m] < x er x i A, så må den være mellom [m+... h] BS(A, x, m+, h) vil returnere riktig resultat else A[m] > x er x i A, så må den være mellom [l... m ] BS(A, x, l, m ) vil returnere riktig resultat
23 Oppsummering. Rekursjon Splitt og hersk bestem hva som må gjøres i basis tilfelle(r) konstruer ( hersk ) en løsning fra (rekursive) løsninger for ( splitt ) noen mindre instanser. Enhver induktiv datatype (nat, int, lister, trær,...) gir opphav til rekursive algoritmer 3. Rekursjon vs. iterasjon (rekursjon implementeres iterativt med bruk av stabel) 4. Korrekthet bestem rekursjons-invarianten verifiser at basistilfelle(r) etablerer invarianten under antakelse at rekursive kall etablerer invarianten, vis at konstruksjonen vil opprettholde den
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
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 som programmeringsteknikk
Rekursjon Kap.7 Sist oppdatert 15.02.10 Rekursjon som programmeringsteknikk 10-1 Rekursiv tenkning Rekursjon er en programmeringsteknikk der en metode kan kalle seg selv for å løse problemet. En rekursiv
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
DetaljerRekursiv 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
DetaljerLø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
DetaljerKapittel 12: Rekursjon
Kapittel 12: Rekursjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
Detaljer"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
DetaljerØ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
DetaljerPensum: 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.
DetaljerHvorfor 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
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
DetaljerRekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr
Fakultet Bredde Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet
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
DetaljerRekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr
Fakultet Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet Den
DetaljerPensum: 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.
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:
DetaljerINF1010. Rekursjon En rekursiv definisjon av rekursjon, slik det kunne stå i en ordbok: Introduksjon til Rekursiv programmering
Introduksjon til Rekursiv programmering To iterate is human; to recurse, divine. L. Peter Deutsch, Robert Heller Rekursjon En rekursiv definisjon av rekursjon, slik det kunne stå i en ordbok: rekursjon
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»
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»
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.
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
DetaljerLO118D Forelesning 2 (DM)
LO118D Forelesning 2 (DM) Kjøretidsanalyse, matematisk induksjon, rekursjon 22.08.2007 1 Kjøretidsanalyse 2 Matematisk induksjon 3 Rekursjon Kjøretidsanalyse Eksempel Finne antall kombinasjoner med minst
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
DetaljerINF2220: 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
DetaljerPG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering
PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering Lars Sydnes, NITH 22.januar 2014 I. Rekursjon commons.wikimedia.org Rekursjon i naturen En gren er et tre som sitter fast på et tre.
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(?):
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
DetaljerINF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell
DetaljerNITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013
NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 20 ette løsningsforslaget er til tider mer detaljert enn det man vil forvente av en eksamensbesvarelse. et er altså ikke et eksempel
DetaljerLø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
DetaljerPrøveeksamen INF2440 v Arne Maus PSE, Inst. for informatikk
Prøveeksamen INF2440 v 2016 Arne Maus PSE, Inst. for informatikk 1 Oppgave 1 (10 poeng) Forklar hva som skjer ved en synkronisering: a) Når to tråder synkroniserer på samme synkroniseringsobjekt (f.eks
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
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,
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15
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
DetaljerQuicksort. 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
DetaljerINF2810: Funksjonell Programmering. Trær og mengder
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Trær og mengder Erik Velldal Universitetet i Oslo 19. februar 2015 Tema Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler
DetaljerINF2220: Forelesning 7. Kombinatorisk søking
INF2220: Forelesning 7 Kombinatorisk søking Oversikt Rekursjon - oppsummering Generering av permutasjoner Lett: Sekvens-generering Vanskelig: Alle tallene må være forskjellige Eksempel: Finne korteste
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:
DetaljerLøsningsforslag for utvalgte oppgaver fra kapittel 3
Løsningsforslag for utvalgte oppgaver fra kapittel 3 3.3 1 Demo innsettingssortering..................... 1 3.5 1 Demo velgesortering........................ 2 3.5 2 Velgesortering...........................
DetaljerAlgoritmer og datastrukturer Løsningsforslag
Algoritmer og datastrukturer ved Høgskolen i OsloSide 1 av 6 Algoritmer og datastrukturer Løsningsforslag Eksamen 24. februar 2010 Oppgave 1A 1. Komparatoren sammenligner først lengdene til de to strengene.
DetaljerDagens tema. Sortering. Fortsettelse om programmering vha tråder.
Dagens tema Sortering. Fortsettelse om programmering vha tråder. «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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 2220 Algoritmer og datastrukturer Eksamensdag: 8. desember 2016 Tid for eksamen: 09:00 13:00 (4 timer) Oppgavesettet er på:
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
DetaljerINF2220: 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
Detaljern/b log b n = (lg n) a log b n = n log b a
Masterteoremet 1 T (n) = at (n/b) + f(n) Antall «barn»: Størrelse per «barn»: «Høyde»: a n/b log b n = (lg n) Rota har f(n) arbeid; hver løvnode har en konstant mengde arbeid. Hva vil dominere totalen?
DetaljerKapittel 12: Rekursjon
Kapittel 12: Rekursjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
DetaljerAlgoritmer 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
DetaljerFørst litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda
Først litt praktisk info Sorteringsmetoder Gruppeøvinger har startet http://selje.idi.ntnu.no:1234/tdt4120/gru ppeoving.php De som ikke har fått gruppe må velge en av de 4 gruppende og sende mail til algdat@idi.ntnu.no
DetaljerINF2440 Eksamen 2016 løsningsforslag. Arne Maus, PSE ifi, UiO
INF2440 Eksamen 2016 løsningsforslag Arne Maus, PSE ifi, UiO 1 Oppgave 1 (10 poeng) a) Beskriv meget kortfattet de to viktigste egenskapene ved tråder i et Java-program. 1. En tråd er sekvensielt programdel
DetaljerLøsningsforslag 2017 eksamen
Løsningsforslag 2017 eksamen Oppgave 1: O-notasjon (maks 8 poeng) 1. (i) O(n) gir 2 poeng, O(100n) gir 1 poeng (ii) O(n^2) gir 1 poeng (iii) O(n log n) gir 2 poeng 2. (i) er mest effektiv i henhold til
DetaljerHeapsort. 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
DetaljerSTABLER OG REKURSJON. Abstrakte Data Typer (ADT) Stabler. ADT Stabel
STABLER OG REKURSJON Abstrakte Data Typer (ADT) Stabler Eksempel: Aksjeanalyse Unntakshåndtering i Java To stabel-implementasjoner Abstrakte Data Typer (ADT) En Abstrakt Data Type er en abstraksjon av
DetaljerNorsk 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.
Detaljer8NH )RUHOHVQLQJ 'HSDUWPHQWÃRIÃ,QIRUPDWLFVÃ8QLYHUVLW\ÃRIÃ2VORÃ1RUZD\,1) ± $OJRULWKPVÃÉÃ'DWDÃ6WUXFWXUHV
:/ 8NH )RUHOHVQLQJ +86.± +LWWLO«Sortering: Sammenligning-baserte: Baserer seg på sammenligning av elemntene i a[ ] Eksempler: Instikk, boble, utplukk Alle tar kvadratisk tid 1 7(0$6RUWHULQJ )RUWVHWWHUPHG
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
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
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerOm Kurset og Analyse av Algoritmer
Om Kurset og Analyse av Algoritmer Lars Vidar Magnusson 8.1.2014 Praktisk informasjon om kurset Hva er en algoritme? (kapittel 1) Hvordan analysere en algoritme? (kapittel 2) Praktisk Informasjon Introduction
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF2440 Effektiv parallellprogrammering Prøveeksamensdag: 1. juni 2016 Tidspunkter: 09.00 16.00 Oppgavesettet er på: 4 sider
DetaljerINF2810: Funksjonell Programmering. Trær og mengder
INF2810: Funksjonell Programmering Trær og mengder Stephan Oepen Universitetet i Oslo 16. februar 2016 Tema 2 Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler Dataabstraksjon I dag Lister
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
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. 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
DetaljerLogaritmiske 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
DetaljerINF Algoritmer og datastrukturer
INF0 - Algoritmer og datastrukturer HØSTEN 05 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF0.09.05 / 8 Dagens plan: Minimale spenntrær Prim Kruskal
DetaljerKapittel 9: Sortering og søking Kort versjon
Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
DetaljerDagens tema. Sortering. Fortsettelse om programmering vha tråder.
Dagens tema Sortering. Fortsettelse om programmering vha tråder. «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
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort
DetaljerEksamen 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
DetaljerDivide-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
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
DetaljerOppgave 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
DetaljerINF1010. Sekvensgenerering Alle mulige sekvenser av lengde tre av tallene 0, 1 og 2: Sekvensgenerering. Generalisering. n n n! INF1010 INF1010 INF1010
Sekvensgenerering Alle mulige sekvenser av lengde tre av tallene, og : Kombinatorisk søking Generering av permutasjoner Lett: Sekvensgenerering Vanskelig: Alle tallene må være forskjellige Eksempel: Finne
DetaljerKapittel 8: Sortering og søking
Kapittel 8: Sortering og søking Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/
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.
DetaljerUNIVERSITETET 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
DetaljerKondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.
Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere
DetaljerBinæ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
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
DetaljerE K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA / DESY )
Høgskolen i Gjøvik Avdeling for Teknologi E K S A M E N FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 189 A EKSAMENSDATO: 11. desember 2000 KLASSE: 99HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA
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
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
DetaljerAlgoritmer og datastrukturer Løsningsforslag
Algoritmer og datastrukturer Løsningsforslag Eksamen 30. november 2010 Oppgave 1A Et turneringstre for en utslagsturnering med n deltagere blir et komplett binærtre med 2n 1 noder. I vårt tilfelle får
DetaljerINF2810: Funksjonell Programmering. Trær og mengder
INF2810: Funksjonell Programmering Trær og mengder Stephan Oepen Universitetet i Oslo 16. februar 2017 Tema 2 Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler Dataabstraksjon I dag Lister
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
DetaljerAlgoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3
Delkapittel 1.3 Ordnede tabeller Side 1 av 74 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
DetaljerDet matematisk-naturvitenskapelige fakultet
LØSNINGSFORSLAG - KOMMENTARER til SENSOR N.B. RETTELSE 23.05 og 26.05 pkt. e) :UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 5 Eksamensdag : Lørdag 20 mai, 2000 Tillatte
DetaljerPython: 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på
DetaljerEKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 15.mai 2018 Klokkeslett: 09:00 13:00 Sted: Tillatte hjelpemidler: Adm.bygget, rom K1.04 og B154 Ingen Type innføringsark (rute/linje):
Detaljerdeeegimnoorrrsstt Sjette forelesning
deeegimnoorrrsstt Sjette forelesning 1 2 Rebus. Hva er dette? Svar: Kvadratiske sorteringsalgoritmer :-> Som vanlig relativt abstrakte beskrivelser her. Ta en titt på pseudokode i boka for mer detaljert
DetaljerINF1010 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
DetaljerSortering med tråder - Quicksort
Sortering med tråder - Quicksort Skisser til to programmer INF1010 våren 2016 Stein Gjessing Institutt for informatikk Universitetet i Oslo Sortering som tema, slikt som valg av sorteringsmetode, hastigheten
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 { ; ;
DetaljerMAT1030 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
Detaljer