Dagens tema. Sortering. Fortsettelse om programmering vha tråder.
|
|
- Ragnhild Aronsen
- 6 å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 michael@ifi.uio.no 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] michael@ifi.uio.no 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. michael@ifi.uio.no 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. michael@ifi.uio.no 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. michael@ifi.uio.no 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. michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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; michael@ifi.uio.no 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 michael@ifi.uio.no 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 michael@ifi.uio.no 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 michael@ifi.uio.no 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... michael@ifi.uio.no 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.... michael@ifi.uio.no 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. michael@ifi.uio.no 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. michael@ifi.uio.no INF april 2010 (uke 15) 54
Dagens 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
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»
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
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
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
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
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
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
DetaljerINF1010 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
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:
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
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.
DetaljerLenkelister. 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 michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
DetaljerOperasjoner 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
DetaljerVelkommen til INF1010
Velkommen til INF1010 Dagens forelesning Hvordan jobbe med INF1010 Pensum Datastrukturer Grafer (lister og trær) Objektorientert programmering Lister og køer Hva er en liste? FIFO- og LIFO-lister Lenkede
DetaljerLenkelister. 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)
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
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
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
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.
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
DetaljerSorteringsproblemet. 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
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
DetaljerHvor raskt klarer vi å sortere?
Sortering Sorteringsproblemet Gitt en array med n elementer som kan sammenlignes med hverandre: Finn en ordning (eller permutasjon) av elementene slik at de står i stigende (evt. avtagende) rekkefølge
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å
DetaljerUNIVERSITETET 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å
DetaljerINF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 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
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
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
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
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
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)
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
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/
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(?):
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
DetaljerUNIVERSITETET 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.
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
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
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
DetaljerUNIVERSITETET 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
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
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
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 4. juni 2005 Tid for eksamen: 0900 1500 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF1010 Objektorientert
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
DetaljerUNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 6 sider. Vedlegg: Tillatte hjelpemidler: INF2220
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: 4. juni 2015 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider. Vedlegg:
DetaljerInnhold. 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........................
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
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
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
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
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
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
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
DetaljerINF 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
DetaljerRekursjon. 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
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
DetaljerAlgoritmer 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
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
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
DetaljerLø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
DetaljerVanlige 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
DetaljerSelv-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
DetaljerKøbenhavn 20 Stockholm
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:
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
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 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
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.
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.
DetaljerLø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
DetaljerO-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: terjery@idi.ntnu.no Tlf:
DetaljerPalindrom - 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: terjery@idi.ntnu.no Tlf:
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 IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerNorsk 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.
DetaljerNorsk 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.
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
DetaljerTDT4105 Informasjonsteknologi, grunnkurs
1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Anders Christensen (anders@idi.ntnu.no) Rune Sætre (satre@idi.ntnu.no) TDT4105 IT Grunnkurs 2 Pensum Matlab-boka: 12.3 og 12.5 Stoffet
DetaljerOversikt. 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
DetaljerObligatorisk 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
DetaljerKapittel 8: Sortering og søking INF100
Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 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/
DetaljerKapittel 8: Sortering og søking INF100
Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 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/
DetaljerUNIVERSITETET 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
DetaljerINF1010. 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
Detaljer7) 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
DetaljerEks 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å
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
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.
Detaljer< 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" michael@ifi.uio.no INF1010 21. februar
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å:
DetaljerUNIVERSITETET 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
DetaljerINF 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
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 /
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
DetaljerLø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
DetaljerDefinisjon. 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
Detaljer