Reflektioner kring OU1 Generellt sett bra kvalitet på dokumentationen! Första intryck... –Skulle du lämna in en jobbansökan med ett häftstift/gem eller.

Slides:



Advertisements
Liknande presentationer
Algoritmer och data strukturer -Länkade listor
Advertisements

Föreläsning 3 Lista Array/länkad lista Lista implementerad som länkad lista Inlämningsuppgifter.
Fortsättningskurs i Programmering lektion 6
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
2D1311 Programmeringsteknik med PBL
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Välkommen Vahid Mosavat
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Programmering B PHP Lektion 2
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering B PHP Lektion 2
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar.
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Riktade listor i C och Java Lösning till gruppövning 1.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Datastrukturer och algoritmer
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Rekursion. En metoddefinition som innehåller ett anrop av sig själv kallas rekursiv.
2D1311 Programmeringsteknik med PBL
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Kap. 3 Derivator och Integraler
Kapitel 3 Sannolikhet och statistik
Kap. 3 Derivator och Integraler
Sol i Syd Projektdagen 2017 Region Blekinge
KPP053, HT2015 MATLAB, Föreläsning 4
SP Sveriges Tekniska Forskningsinstitut
KPP053, HT2016 MATLAB, Föreläsning 2
Kapitel 1 Algebra och linjära modeller manada.se.
Behandlas under 4 kursträffar i mineralmuseet mars-april 2017
Så tycker de äldre om äldreomsorgen 2016
Men kolla bildspelet vecka 18 först
Nordiska Lärarorganisationers Samråd
Arbetsgrupp ”Hat och hot mot förtroendevalda”
Välkommen till.
Styrelsen i stallet vecka 20
Framgångsfaktorer för en global projektverksamhet
Nya regler om energi i BBR
Lagen om Energikartläggning i stora företag
Växtekologisk orienteringskurs
Tularemi.
Information till primärvården Herman Nilsson-Ehle Catharina Lewerin
Inför avtalsrörelsen 2016 Lars Calmfors
Lagen om Energikartläggning i stora företag
KPP053, HT2016 MATLAB, Föreläsning 3
Fosfor från Östersjöns djupbottnar är problemet
Dagens ämnen Matriser Räkneoperationer och räknelagar
Ledarutveckling över gränserna
det är den här processen
BILDSPEL ABISKO, ev. YOUTUBE KLIPP
Föreläsning 8: Exempel och problemlösning
Föreläsning 12: Exempel och problemlösning
Presentationens avskrift:

Reflektioner kring OU1 Generellt sett bra kvalitet på dokumentationen! Första intryck... –Skulle du lämna in en jobbansökan med ett häftstift/gem eller vikta blad i stället för att leta en häftapparat? –Skulle du använda denna rapport som ett exempel på hur du dokumenterar dina kunskaper när du söker jobb? Sidnummer och innehållsförteckning Rapporten ska läsas av ”utomstående” –många beskriver inte operationerna i en tabell! –att redovisa tiderna för programmen underlättar förståelsen av analysen Formellt skrivande –”jag”, ”du”, slang

Reflektioner kring OU1 Kommentera koden! –Absolut minimum: varje enskild metod ska ha en kommentar som beskriver syfte och parametrar –En godtycklig javakunnig person ska förstå koden Trend i årets labbar: Ineffektiva program! –Först gör man en lookup för att se om elementet finns och sen traverserar man igen(!) för att sätta in/ta bort... –Loopa igenom hela arrayen i IsEmpty –”Täppa till hålen” i remove steg för steg Break i for-loopar lika illa som goto! MTFTable kan ärva från ListTable

isEmpty... public boolean isEmpty() { if (first.getNextElement() == null) { return true; } else { return false; } } public boolean isEmpty() { return first.getNextElement() == null; }

Skriv om till while utan break! ListItem pos = head; while (pos != null) { if (k.compareTo(pos.getKey()) == 0) { break; } pos = pos.getNext(); } ListItem pos = head; while ((pos != null) && (k.compareTo(pos.getKey())!= 0))){ pos = pos.getNext(); } Så här:

Skriv om till for utan break! for(int i = 0; i<max; i++){ if(table[i] != null){ if(k.compareTo(table[i].getKey()) == 0){ table[i] = new Element(k,val); break; } else{ table[i] = new Element(k,val); break; }

Så här: boolean inserted = false; int i = 0; while (i<max && !inserted){ if(table[i] != null){ if(k.compareTo(table[i].getKey()) == 0){ table[i] = new Element(k,val); inserted = true; } else{ table[i] = new Element(k,val); inserted = true; } i++; }

”Ja, men en jämförelse till blir ju så ineffektivt – break rules!” Blir det mer inneffektivt? Låt oss göra en komplexitetsanalys... Vi associerar en kostnad till varje operation i pseudokoden. Följande operationer har kostnaden 1: –Funktions-/metodanrop. –Returnera från en funktion/metod. –Utföra aritmetiska operationer (+,−,×, /). –Jämförelse mellan tal. –Referera till ett objekt eller en variabel. –Indexera i en array. –Tilldelning

Värstafallskomplexitet (arrayen full men k finns ej där) for(int i = 0; i<n; i++){ 1 + (n+1)*(1+1+1) + n*([]+2) (init, villkor, loop) if(table[i] != null){ (index + table[i] + jämf) if(k.compareTo(table[i].getKey()) == 0){ table[i] = new Element(k,val); break; 1 } } else{ table[i] = new Element(k,val); break; } } T max (n) = 1 + 3(n+1) + n*( ) = 1 + 3n n = n För n ≥ n 0 ska n ≤ 21n n 0 = 4, dvs T max (n) är O(n) för c = 21 och n 0 = 4

Värstafallskomplexitet (arrayen full men k finns ej där) boolean inserted = false; 1 int i = 0; 1 while (i<n && !inserted){ (n+1)*( ) + n*[] if(table[i] != null){ (index + jämf + null) if(k.compareTo(table[i].getKey()) == 0){ table[i] = new Element(k,val); inserted = true; 1 } } else{ table[i] = new Element(k,val); inserted = true; } i++; 1+1 } T max (n) = (n+1) + n*( ) = 2 + 6n n = n För n ≥ n 0 ska n ≤ 24n n 0 = 8, dvs T max (n) är O(n) för c = 24 och n 0 = 8