TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU
|
|
- Filip Andersson
- för 5 år sedan
- Visningar:
Transkript
1 TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Omega, Theta Selectionsort, Shellsort, Quicksort Grafiskt användargränssnitt, Swing, Layout 1
2 Repetition, Ordo Definition: Givet två funktioner f(n) och g(n) Om det finns positiva konstanter c och n 0 sådana att f(n) cg(n) för n n 0 Då f(n) O(g(n)) (dvs. f(n) tillhör Ordo(g(n)) T Harry (n) = 5*n + 2 T Anna (n) = 8*log 2 (n) + 2 Antagande: g(n) = n 5n +2 cn (c-5)n 2 n 2 c 5 låt c = 6, n 0 =2 => 5n + 2 6n för n 2 => T Harry (n) O(n) Antagande: g(n) = n 8log 2 (n) + 2 cn 8 log c 2(n)) + 2 n c låt c = 8, n 0 =2 => 8log 2 (n) + 2 8n för n 2 =>T Anna (n) O(n) 2
3 Asymptotisk storlek spelar roll n 3n n Vid tillräckligt stora probleminstanser Om en tidsenhet motsvarar 1 ns mikrosekunder 200 ms 3 ms 2s 3 s 22 s 50 s 51 s 49 min 3.2 min 95 år 5.4 tim Konstanter före spelare inte så stor roll O(n 3 ) O(n) Funktionens klass är det som dominerar asymptotiskt! 3
4 Ordoklasser Ordo Benämning O(1) Konstant O(log(n)) Logaritmisk O(n) Linjär O(nlog(n)) O(n 2 ) Kvadratisk O(n 3 ) Kubisk O(2 n ) Exponentiell O(n!) Faktoriell O(n x ) Polynomisk Effektivare algoritm Högre komplexitet 4
5 Räkneregler O(a(n) + b(n)) O( max(a(n), b(n)) ) Exempel: om vi skall räkna alla Smiths och fotografera dem. T foto (n) = 1, T räkna n = 2n, O T foto n + T räkna n O max T foto n, T räkna n O T räkna n O 2n O n => När antalet blir många så är det räknandet som kommer ta tid! Exempel 2: om vi skall låta alla på en konferens få en namnbricka och sedan skall alla skaka hand med alla. T dela ut brickor n = n, T skaka hand n = n(n 1) 2 = n2 n 2 O n + n2 n O n2 O n => när antalet blir många så är det handskakningen som tar tid! 5
6 Räkneregler Konstant log a (n) = (1/log b (a)) * log b (n) Om vi byter mellan baser får vi bara en annan konstant D.v.s, basen spelar ingen roll Om f(x) O(log(n)) så f(x) O(n) välj den som beskriver algoritmen bäst Låt funktionen a O(g) och b O(h) Då gäller a*b O(gh) T.ex. om vi skall berätta namnet på alla på konferensen för varje person som får en namnbricka. => n*n O(n^2) 6
7 Omega och Theta Givet två funktioner f och g f tillhör Ω(g) om det finns två positiva konstanter c, n 0 sådana att f(n) cg(n) för n n 0 Ω(g) är en undre gräns för funktionen, jmf. O(g) Givet två funktioner f och g f tillhör Θ(g) om f tillhör Ω(g) och O(g) O Ordo Θ Theta Ω Omega 7
8 Enklare metod public static void algorithm(int[] numbers) { int tmp; for (int i = 1; i < numbers.length; ++i) { for (int j = numbers.length; j >= i; ++j) { if (numbers[i] < numbers[j]) { tmp = numbers[i]; 1 numbers[i] = numbers[j]; numbers[j] = tmp; } } } } T alg (n) O(n 2 ) n n 2 8
9 Indatas innehåll kan påverka Beror ej bara på indatas storlek, utan även innehållet Värstafallet Bästafallet Medelfallet Oftast analyseras värstafallet Ibland missvisande, kanske är statistiskt sällsynt fall Amorterad analys T.ex. analys av metoden push för en Lista implementerad med en array. (lägger till ett element sist). 9
10 Amorterad analys T.ex. analys av metoden push (lägger till ett element sist) för en Lista implementerad med en array som heter A. n perationer Metod push(elementet e) { om antal element = A:s storlek { Allokera en ny array B (dubbelt så stor som A). } Kopiera över alla element i A till B Kalla B för A 1 lägg till e på plats (antal element + 1) peration } Är push verkligen O(n)? Oftast tar det ju bara 1 tidssteg! 10
11 Amorterad analys Vi kan se detta som en försäljningsautomat som säljer push-operationer i utbyte mot tidsenheter. Varje gång vi använder den måste vi då betala 1 tidsenhet, eller eventuellt n tidsenheter. Om vi låter automaten lagra tidsenheter så skulle den kunna ta mer betalt för varje push, t.ex. 3 tidsenheter, då kanske vi har tillräckligt mycket sparat när vi väl behöver de extra n tidsenheterna. Om vi simulerar detta ett par steg 11 => O(3) O(1)
12 Rumskomplexitet Mäter hur mycket extra minne algoritmen allokerar förutom indatan int[] tmp = new int[ ] => O(1) int[] tmp = new int[n.length*2] => O(n) int[][] tmp = new int[n.length][n.length] => O(n 2 ) Harrys och Annas algoritmer har båda konstant rumskomplexitet 12
13 Problemkomplexitet Ett problems inneboende komplexitet är den minsta komplexiteten av alla algoritmer som kan lösa problemet Sökning i sorterad array (Harry och Annas problem) => O(log(n)) Sökning i osorterad array => O(n) En algoritm med samma komplexitet som problemet är optimal Vinnare: Anna, med en optimal algoritm med konstant rumskomplexitet! 13
14 Sorteringsstrategier Insertion sorts (hitta rätt plats för ett element) Linear insertion Shell sort... Selection sorts (hitta rätt element för en plats) Straight selection Heap sort... Exchange sorts (byt plats på element som ligger fel) Quick Sort Merge sort... 14
15 Selection sort Strategi: I varje iteration, sök efter det minsta elementet i den osorterade mängden, och lägg till elementet i slutet av den sorterade mängden. Naiv lösning ( rak selectionsort ) Dela upp arrayen i en sorterad och osorterad del Leta upp det minsta elementet i den osorterade delen och lägg sist i den sorterade Upprepa 15
16 Selection sort(2) Implementationsexempel void selectionsort(int[] a){ for (int i = 0; i < a.length-1; ++i) { int x = i; for (int j = i+1; j < a.length; ++j) { if (a[j] < a[x]) { x = j; } } byt plats på a[i] och a[x]; } } n n 2 Asymptotisk (tids)komplexitet? Stabil? O(n 2 ) Nej långsam Få byten 16
17 Shell sort Upprepad insertionsort Strategi: Välj ett lucktal N och låt n vara Markera vart N:te element från och med n i listan och sortera dessa inbördes med insertion sort. 2. Öka n med ett och upprepa (1) tills n == N. 3. Minska N, låt n vara 0 och upprepa (1), (2) tills N < 1 Noteringar: Börja med ett stort N, upp till size/2 Att N == 1 i slutet => Vanlig insertionsort som sista steg 17
18 Shell sort(2) Val av lucksekvens N i Hibbards [ 1, 3, 7,..., 2 k -1 ] Knuths: [ 1, 4, 13,..., (3 k -1)/2 ] Gonnets: Dividera N med 2.2 stegvis, avrunda nedåt, se till att den sista blir 1, ex. n=100: [ 1, 4, 9, 20, 45 ] T shellsort? Stabil? Svårt, beror på lucksekvensen. Ej sämre än O(n 2 ) Nej 18
19 Quick Sort Strategi: Divide and conquer : Välj ut ett element p, pivotelementet, och flytta åt sidan. Placera alla element < p till vänster i fältet, alla element > p till höger. Flytta in pivotelementet där den högra och vänstra delen möts Upprepa detta (rekursivt) på vänstra och högra delen. T quicksort = O(n 2 ) MEN Medelfallet nästan lika med bästafallet Ω(nlog(n))! Fördel: Jämför tal nära varandra. Bra när datamängden är mycket stor (för mer info, läs om cache-minnen!) 19
20 Quick Sort(2) Val av pivotelement Pivotelementet kan väljas godtyckligt men ju bättre val, desto jämnare uppdelning mellan höger och vänster Elementet längst till höger (ligger redan åt sidan ) Slumpa ett element (hoppas att det blir lagom ) Median av tre element (större chans att det blir lagom ) 20
21 Dialogrutor JOptionPane används för att visa dialogrutor Ett urval av de statiska metoderna: showconfirmationdialog showinputdialog showmessagedialog String name = JOptionPane.showInputDialog("Vad heter du?"); if (name!= null) { // null if user cancels JOptionPane.showMessageDialog(null, "Hej " + namn); } 21
22 Dialogrutor(2) Körexempel: 22
23 Fönster Rätt snart vill man rita upp egna typer av fönster Lösning: Klassen JFrame implementerar ett fönster För att skapa ett eget, skriv en klass som ärver från denna Fyll sedan fönstret med de komponenter du vill ha 23
24 Fönster, exempel public class MyFrame extends JFrame { public MyFrame() { super("välkomstfönster"); JLabel text = new JLabel("Hej allesammans!"); getcontentpane().add(text); setsize(new Dimension(300, 200)); setdefaultcloseoperation(jframe.exit_on_close); } } public static void main(string[] args) { JFrame thewindow = new MyFrame(); thewindow.setvisible(true); } 24
25 Komponenter 25
26 Layouthanterare Problem: Om två eller flera komponenter läggs till, var placeras de? Lösning: Använd en layouthanterare getcontentpane().setlayout(new FlowLayout()); FlowLayout GridLayout(r, k) BorderLayout BoxLayout(riktning)... Komponenterna placeras från vänster till höger i rader, uppifrån och ner Delar upp fönstret i rutmönster om r rader och k kolumner. Alla rutor (d.v.s. komponenter) blir lika stora Delar upp fönstret i fem delar: längs sidorna och i mitten: NORTH, SOUTH, WEST, EAST, CENTER En gör-det-själv layout. Placerar komponenterna brevid varandra antingen i x-led eller y-led. Lätt att förstå, mycket att skriva. 26
27 Layouthanterare(2) Gissa layouthanterare: Borderlayout - Layouten blir ofta ganska grov + Enkel att använda Förfina med under-layouter! 27
28 Händelser och lyssnare För att programmet ska kunna reagera på händelser kopplar man på olika typer av lyssnare till komponenter i fönstret Lyssnarna kan fånga upp händelser som knapptryckningar och musrörelser Observera att lyssnare är interfaces, du måste själv implementera dem Händelse ActionEvent MouseEvent KeyEvent MenuEvent Lyssnare ActionListener MouseListener, MouseMotionListener KeyListener MenuListener 28
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Algoritmanalys Tidskomplexitet, Rumskomplexitet
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Sortering Selectionsort, Bubblesort,
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Grafiskt användargränssnitt, Swing Layout och komponenter Göra
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Algoritmanalys, Ordo Sortering, Insertionsort
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Strömmar Grafiskt användargränssnitt,
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Objektorienterad analys, Objektorienterad design Grafiskt användargränssnitt,
Läs merObjektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Strömmar Grafiskt användargränssnitt,
Läs merSökning och sortering
Sökning och sortering Programmering för språkteknologer 2 Sara Stymne 2013-09-16 Idag Sökning Analys av algoritmer komplexitet Sortering Vad är sökning? Sökning innebär att hitta ett värde i en samling
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 10 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 10 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Lägre gräns för sortering Count sort,
Läs merObjektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Repetition Om tentamen 1 FÖ1-2: Objektorientering
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Repetition Om tentamen 1 FÖ1-2: Objektorientering
Läs merProgrammering för språkteknologer II, HT2014. Rum
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Sökalgoritmer
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som
Läs merFöreläsning 11 Datastrukturer (DAT037)
Föreläsning 11 Datastrukturer (DAT037) Fredrik Lindblad 1 4 december 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merTommy Färnqvist, IDA, Linköpings universitet
Föreläsning 8 Sortering och urval TDDC70/91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 1 oktober 2013 Tommy Färnqvist, IDA, Linköpings universitet 8.1 Innehåll Innehåll 1 Sortering
Läs merAsymptotisk komplexitetsanalys
1 Asymptotisk komplexitetsanalys 2 Lars Larsson 3 4 VT 2007 5 Lars Larsson Asymptotisk komplexitetsanalys 1 Lars Larsson Asymptotisk komplexitetsanalys 2 et med denna föreläsning är att studenterna skall:
Läs merMagnus Nielsen, IDA, Linköpings universitet
Föreläsning 7 Introduktion till sortering TDDC91,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 24 september 2018 Magnus Nielsen, IDA, Linköpings universitet 7.1 1
Läs merFöreläsning 2 Datastrukturer (DAT037)
Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet
Läs merFöreläsning 5 Innehåll
Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur
Läs merFöreläsning 11 Innehåll
Föreläsning 11 Innehåll Sortering O(n 2 )-algoritmer: urvalssortering insättningssortering O(n log n)-algoritmer: Mergesort Quicksort Heapsort behandlades i samband med prioritetsköer. Undervisningsmoment:
Läs merFöreläsning 1 Datastrukturer (DAT037)
Föreläsning 1 Datastrukturer (DAT037) Fredrik Lindblad 1 30 oktober 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merFöreläsning 2 Datastrukturer (DAT037)
Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merAlgoritmer och effektivitet. Föreläsning 5 Innehåll. Analys av algoritmer. Analys av algoritmer Tidskomplexitet. Algoritmer och effektivitet
Föreläsning 5 Innehåll Algoritmer och effektivitet Algoritmer och effektivitet Att bedöma, mäta och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Undervisningsmoment: föreläsning 5, övningsuppgifter
Läs merFöreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek
Föreläsning 5 Innehåll Val av algoritm och datastruktur Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Det räcker inte med att en algoritm är korrekt
Läs merMer om grafiska komponenter. Händelsestyrda program
Layout Managers TDA143 I1 Programmerade system Föreläsning 14 (OH-bilder 10) Mer om grafiska komponenter. Händelsestyrda program Utplaceringen av komponenter i en behållare styrs med en Layout Manager.
Läs merFöreläsning 11 Innehåll. Sortering. Sortering i Java. Sortering i Java Comparable. Sortering. O(n 2 )-algoritmer: urvalssortering insättningssortering
Föreläsning 11 Innehåll Sortering O(n 2 )-algoritmer: urvalsering insättningsering O(n log n)-algoritmer: Merge Quick Heap behandlades i samband med prioritetsköer. Undervisningsmoment: föreläsning 11,
Läs merObjektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2
Objektorienterad programmering E Algoritmer Linjär sökning Binär sökning Tidsuppskattningar Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk; dess syntax och semantik, bibliotek
Läs merAlgoritmer. Två gränssnitt
Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;
Läs merProgramkonstruktion och Datastrukturer
Programkonstruktion och Datastrukturer VT 2012 Tidskomplexitet Elias Castegren elias.castegren.7381@student.uu.se Problem och algoritmer Ett problem är en uppgift som ska lösas. Beräkna n! givet n>0 Räkna
Läs merFöreläsning 12 Innehåll
Föreläsning 12 Innehåll Sortering O(n 2 )-algoritmer: urvalssortering insättningssortering O(n log n)-algoritmer: Mergesort Quicksort Datavetenskap (LTH) Föreläsning 12 HT 2017 1 / 38 Sortering Varför
Läs merSwing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna
MER Java Foundation Classes (JFC) Swing Swing Många klasser Vettigt att lära sig dem utantill - Tror inte det -... men det kan vara bra att ha en liten överblick över vad som finns - Idag (och med fortsättning
Läs merAlgoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016
Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016 Algoritmanalys Inledning Exempel 1: x n När vi talade om rekursion presenterade vi två olika sätt att beräkna x n, ett iterativt: x n =
Läs merDatastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6
Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar
Läs merTentamen Datastrukturer D DAT 036/INN960
Tentamen Datastrukturer D DAT 036/INN960 18 december 2009 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 = 48 p, GU:
Läs merFöreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna
Föreläsning Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Implementering med lista ar Implementering av prioritetskö med heap Sortering
Läs merSORTERING OCH SÖKNING
Algoritmer och Datastrukturer Kary FRÄMLING Kap. 9, Sid 1 C-språket 2/Kary Främling v2000 och Göran Pulkkis v2003 SORTERING OCH SÖKNING Sortering är ett av de bästa exemplen på problem där valet av lösningsalgoritm
Läs merFöreläsning 9. Sortering
Föreläsning 9 Sortering Föreläsning 9 Sortering Sortering och Java API Urvalssortering Instickssortering Söndra och härska Shellsort Mergesort Heapsort Quicksort Bucketsort Radixsort Läsanvisningar och
Läs merSwing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna
MER Java Foundation Classes (JFC) Swing Swing Många klasser" Vettigt att lära sig dem utantill" - Tror inte det" -... men det kan vara bra att ha en liten överblick över vad som finns" - Idag (och med
Läs merTentamen med lösningsförslag Datastrukturer för D2 DAT 035
Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.)
Läs merTDDC Terminologi Uppdaterad Fö #1
Det här dokumentet ska inte ses som en uttömmande förklaring av varje term, utan snarare som en snabb påminnelse om vad varje enskild term betydde. För en mer noggrann beskrivning, se kursmaterialet eller
Läs merFöreläsning 12 Innehåll
Föreläsning 12 Innehåll Sortering O(n 2 )-algoritmer: urvalssortering insättningssortering O(n log n)-algoritmer: Mergesort Quicksort Datavetenskap (LTH) Föreläsning 12 VT 2018 1 / 40 Sortering Varför
Läs merFöreläsning 3: Händelsestyrda program och användargränssnitt
(2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september
Läs merTDDI16 Datastrukturer och algoritmer. Algoritmanalys
TDDI16 Datastrukturer och algoritmer Algoritmanalys 2017-08-28 2 Översikt Skäl för att analysera algoritmer Olika fall att tänka på Medelfall Bästa Värsta Metoder för analys 2017-08-28 3 Skäl till att
Läs merFöreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-10 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 Förra
Läs merSortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad?
Sortering Föreläsning : Sorteringsalgoritmer Sortering: att ordna data i någon sekventiell ordning Sortering förekommer som del i många applikationer Kanonisk form för sorterat data? Skall den sorterade
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Bubblesort, Shakersort, Mergesort Strömmar,
Läs merDenna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se
1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik
Läs merSortering. Föreläsning 12 Innehåll. Sortering i Java. Sortering i Java Exempel. Sortering
Föreläsning 12 Innehåll Sortering Sortering O(n 2 )-algoritmer: urvalsering insättningsering O(n log n)-algoritmer: Merge Quick Varför era? För att göra sökning effektivare. För att förenkla vissa algoritmer.
Läs merTentamen Datastrukturer D DAT 036/INN960
Tentamen Datastrukturer D DAT 036/INN960 18 december 2009 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 = 48 p, GU:
Läs merDatastrukturer D. Föreläsning 2
Datastrukturer D Föreläsning 2 Jämförelse mellan olika sorteringsalgoritmer n Selection sort T(n) Insertion sort T(n) 2 1 1 1 Merge sort T(n) 4 6 3-6 4-5 8 28 7-28 12-17 16 120 15-120 32-49 Analysis of
Läs merFöreläsning 1. Introduktion. Vad är en algoritm?
Några exempel på algoritmer. Föreläsning 1. Introduktion Vad är en algoritm? 1. Häll 1 dl havregryn och ett kryddmått salt i 2 1 2 dl kallt vatten. Koka upp och kocka gröten ca 3minuter. Rör om då och
Läs merProgrammering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.
Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer
Läs merFöreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:
Föreläsning 7 Innehåll Rekursion Rekursivt tänkande: Hur många år fyller du? Ett år mer än förra året! Rekursion Rekursiv problemlösning Binärsökning Generiska metoder Rekursiv problemlösning: Dela upp
Läs merADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar
Föreläsning 1 Innehåll ADT Prioritetskö Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util ar Implementering av prioritetskö med heap Sortering med hjälp
Läs merFöreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Heapar Implementering av prioritetskö med heap Klassen PriorityQueue i java.util Programexempel LPT-algoritmen
Läs merFöreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Läs merGrundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 18 Igår: Genomgång av dugga Rekursion Idag och på måndag: Om essän Lite, lite teori om konstanter Grafiska användargränssnitt Grundläggande
Läs merFöreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-12-14 Idag Frågor? Är något oklart inför tentan? Sammanfattning Exempel från föreläsning 1 Dåligt val av datastruktur public class Bits {
Läs merADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar
Föreläsning 1 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Heapar Implementering av prioritetskö med heap Sortering med hjälp av heap
Läs merTeoretisk del. Facit Tentamen TDDC (6)
Facit Tentamen TDDC30 2013-06-05 1 (6) Teoretisk del 1. (3p) "Snabba frågor" Alla svar motiveras väl. a) Vad skiljer en statisk metod från en icke-statisk? (0.5p) Svar:En statisk metod är associerad till
Läs merTeoretisk del. Facit Tentamen TDDC (6)
Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Läs merÖversikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem
Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från
Läs merFöreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT07) Fredrik Lindblad 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat07 1 Innehåll
Läs merLösningsförslag till tentamen
Uppgift 1 a) Sant. b) Sant. c) Sant. Lösningsförslag till tentamen 170818 d) Falskt. IPv6 anger en IP-adress med 132 bitar. e) Falskt. Spoofing åsyftar användning av förfalskad eller lånad identitet på
Läs merDatastrukturer och algoritmer. Föreläsning 15 Inför tentamen
Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett
Läs mer4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &
TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015
Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation
Läs merITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter
ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering 1 DSV Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste åren I Java finns
Läs merObjektorienterad programmering med Java Swing: Händelser, lyssnare och applets
GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet
Läs merTentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2010-03-16 Skrivtid: 4 timmar Kontaktperson: Nicolina Månsson Poäng / Betyg: Max 44 poäng
Läs merFöreläsning 13 Datastrukturer (DAT037)
Föreläsning 13 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-12-14 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Sammanfattning
Läs merHitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet
Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig
Läs merTentamen , Grundläggande programmering i Java
Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning
Läs merLösningsförslag för tentamen i Datastrukturer (DAT037) från
Lösningsförslag för tentamen i Datastrukturer (DAT7) från --9 Nils Anders Danielsson. Träd- och köoperationerna har alla tidskomplexiteten O(log s), där s är antalet element i trädet/kön (notera att jämförelser
Läs merProgrammering för språkteknologer II. OH-serie: Sökning och sortering. Algoritm
Programmering för språkteknologer II OH-serie: Sökning och sortering Mats Dahllöf Sökning och sortering Sökning: lokalisera objekt i samlingar. Finns ett visst värde? I så fall: var? Sortering: placera
Läs merExempel: Förel Rekursion III Nr 14. Uno Holmer, Chalmers,
Exempel: Kappsäcksproblemet Backtracking Dynamisk programmering Föreläsning (Weiss kap..-) Kan man ur en grupp föremål F,,F N med vikterna V,,V N välja ut en delgrupp som väger exakt M kilo? Exempel: föremål
Läs merSeminarium 13 Innehåll
Seminarium 13 Innehåll Prioritetsköer och heapar Prioritetsköer ADTn Klassen PriorityQueue i java.util Implementering med lista Heapar ADTn För implementering av prioritetskö För sortering Efter seminariet
Läs merRebecka Geijer Michaeli, IDA, Linköpings universitet. 1 Administrativ information Upplägg... 2
Föreläsning 1 Introduktion TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 29 augusti 2016 Rebecka Geijer Michaeli, IDA, Linköpings universitet 1.1 Innehåll Innehåll 1 Administrativ
Läs merObjektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merDatastrukturer. föreläsning 3. Stacks 1
Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer
Läs merObjektorienterad programmering E. Back to Basics. En annan version av printtable. Ett enkelt exempel. Föreläsning 10
Objektorienterad programmering E Föreläsning 10 Rekursion Länkade datastrukturer Back to Basics Exekvera programmet för hand! public class Param { public static int f(int x) { return x+1; public static
Läs merTentamen Datastrukturer D DAT 036/DIT960
Tentamen Datastrukturer D DAT 036/DIT960 17 december 2010 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 0736-341480 eller ankn 1035 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 =
Läs merFöreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-16 Idag Mängder, avbildningar. Hashtabeller. Sortering. Pseudokod Blandning av programmeringsspråk, matematisk notation och naturligt
Läs merExempeltenta GruDat 2002/2003
Exempeltenta GruDat 2002/2003 Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ ger noll poäng på uppgiften. Obs: Den riktiga tentan kommer
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n
Läs merLösning av några vanliga rekurrensekvationer
1 (8) Lösning av några vanliga rekurrensekvationer Rekursiv beräkning av X n En rekursiv funktion som beräknar x n genom upprepad multiplikation, baserat på potenslagarna X 0 = 1 X n+1 = X X n float pow(float
Läs merFöreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing
Föreläsning 15 (16) Introduktion till Swing Historik (java.awt) JDK 1.0 AWT (Abstract Window Toolkit) Paket för gränssnittsprogrammering Har en del nackdelar: Använder s.k. native code Stödjer endast komponenter
Läs merDatastrukturer och algoritmer
Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer Algoritmer Vad är det? Innehåll Mer formellt om algoritmer beräkningsbarhet Att beskriva algoritmer Analysera algoritmer Exekveringstid,
Läs merTentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: 2:a september 200, klockan 8:30-12:30. Plats: V Ansvarig lärare: Katarina Blom, tel 772 10 0. Läraren besöker tentamen kl 9:30
Läs merIntroduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Läs merFöreläsning 10 Datastrukturer (DAT037)
Föreläsning 10 Datastrukturer (DAT037) Fredrik Lindblad 1 29 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merMedan ni väntar. 2. Skriv metoden. 3. Skriv metoden. Naturligtvis rekursivt och utan användning av Javas standardmetoder.
(10 september 2018 T02 1 ) Medan ni väntar 1. Binär sökning i sorterad array med n element kräver log 2 n försök. Hur många försök krävs i en array med 10 3, 10 6 respektive 10 9 element? 2. Skriv metoden
Läs merObjektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetition: Arv En subklass ärver alla variabler och metoder från sin superklass.
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning
Läs merTentamen Datastrukturer för D2 DAT 035
Tentamen Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser:
Läs mer