TILLÄMPAD DATALOGI (TILDA) Övning 4 www.nada.kth.se/~mhj/tilda.

Slides:



Advertisements
Liknande presentationer
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Advertisements

void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Klasser och objekt.
Fortsättningskurs i Programmering lektion 3 Johan Hjerling
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Logikprogrammering Ons, 25/9
2D1311 Programmeringsteknik med PBL
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Hashing / Hash tabeller -- Kapitel 20. Hash? Varför en annan datastruktur? Konstant tid för både insert- och find- operationer.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 3, torsdag 7 feb. kl Del 1. Klasser, objekt, metoder, konstruktorer, samlingar och tillstånd. Hur.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Datasamlingar och generiska enheter
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
Övning 4
Programmeringsteknik för Media1 & K1
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
1 Programmera med strängar nr 9 Tal till sträng Sträng till tal Grep Sträng till lista av ord.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
TILLÄMPAD DATALOGI (TILDA) Övning 3
DD1320/25 TILDA Lösningsskiss tenta 31 oktober 2013.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Introduktion till programmeringsspråket Java -Den allmänna.
Graph och graph-algoritmer. Några enkla graph teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Sociala nätverk. Vanligaste frågeställningar:
1. Skriv programmet Fetkoll som läser igenom valfri webbsida och skriver ut alla ord och fraser som står med fetstil. I HTML anges det med starttaggen.
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sorterings algoritmer.
Övning 5
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Programmeringsteknik
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
Malmö högskola Rolf Axelsson 2003/2004 DA7235, 4 poäng Fält som returvärde Sortera fält Söka i fält Tvådimensionella fält Fält och spelplan Föreläsning.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sökning, Symbol tabeller Binära sökträd.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

TILLÄMPAD DATALOGI (TILDA) Övning 4

Hashning Sortering

Listor: O(n) Binärträd: O(log n) Kan vi söka ännu snabbare?

Hashning

BjörnAgnethaBennyAnni-Frid first BjörnBenny firstA AgnetaAnni-Frid firstB Agneta Björn Benny Anni-Frid table [ ] Iden med hashning hash betyder: hackmat, röra

Benny Björn Anni-Frid Agnetha table [ ] f( ) = = 73 mod 4 1 f( ) = = 55 mod 4 3 f( ) = = 60 mod 4 0 f( ) = = 105 mod 4 1 Insättning (put) hashfunktiontabellstorlek Björn Agnetha Benny Anni-Frid

Benny Björn Anni-Frid Agnetha table [ ] f( ) = = 60 mod 4 0 f( ) = = 73 mod 4 1 f( ) = = 46 mod 4 2 Sökning (get) Björn Benny Björn f( ) = = 17 mod 4 1 Bo Marie Anni-Frid Björn

Benny Anni-Frid Agnetha table [ ] 9999 Tabellstorlek Björn f(Björn) = 73 f(Agnetha) = 55 f(Benny) = 60 f(Anni-Frid) = … mod 10000

Benny Anni-Frid Agnetha table [ ] Tabellstorlek Björn f(Björn) = 73 f(Agnetha) = 55 f(Benny) = 60 f(Anni-Frid) = 105 mod 8 Tumregel: 50% luft

Benny Anni-Frid Agnetha table [ ] 9999 Tabellstorlek Björn …..

Hashfunktion god spridning snabb att beräkna public static void main(String [] args) { String s1 = ”hej”; int code = s1.hashCode(); System.out.println(code); } f(s) = s[0] * 31 (n-1) + s[1] * 31 (n-2) s[n-1] Hashning av strängar i Java: f(s1) = 104 * * =

Krockhantering med ”linear probing” Benny Agnetha table [ ] f(Björn) = 73 f(Agnetha) = 55 f(Benny) = 60 f(Anni-Frid) = 105 mod 8 Anni-Frid Björn 2 Krock! kluster

Krockhantering med ”quadratic probing” Benny Agnetha table [ ] f(Björn) = 73 f(Agnetha) = 55 f(Benny) = 60 f(Anni-Frid) = 105 mod 8 Björn 2 2 = 4 Krock! 3 2 = 9 Krock! Anni-Frid mod = 16 mod 8 0

Perfekt hashfunktion 0 false false 32 false 50 false 51 false ….. Spara kort som dragits ur en kortlek. klöver = 0, ruter = 1, hjärter = 2, spader = 3 f(färg, nr) = 13 * färg + nr-1 f(klöver, 8) = 13 * = 7 f(hjärter, 7) = 13 * = 32 f(ruter, knekt) = 13 * = 23 ess = 1, knekt = 11, dam = 12, kung = 13 true klöver 8: hjärter 7: ruter knekt: …..

Bloomfilter 0 false false false false false false ….. Stavningskontrollprogram: true ….. f(”hej”) = mod …………… true 50 % att ett felstavat ord, t.ex. ”heej”, godkänns f1(”hej”) = mod f2(”hej”) = mod f3(”hej”) = mod …………… % att ett felstavat ord, t.ex. ”heej”, godkänns. fortsätt med samtliga ord… true I Viggos Stava används 14 hashfunktioner %

Sortering

Quicksort pivot Komplexiteten blir i allmänhet O(n log n) pivot 1 2 Komplexiteten blir O(n 2 ) om redan sorterad

Röster för fred :7 Körledaren förvarar sina noter sorterade i en tjock pärm. Till varje repetition plockar han ut några noter och efteråt sorteras de in i pärmen igen med quicksort. Som pivotelement väljs elementet längst till höger i varje delvektor. I kören finns en tildaelev som påpekar att det går att göra mycket enklare och effektivare. Hur då? Ange komplexiteten då m noter plockas ut från den n tjocka pärmen? m Komplexitet: O(m log m + n)

Dokusåpan :7 En populär kanadensisk dokusåpa söker deltagare. Flera (243 personer) vill vara med och arrangörerna sorterar de sökande i en lång rad efter näslängd. När programledaren öppnar dörren för att släppa in den första sökanden får en handfull av dem som står först i kön syn på honom och blir så skraja att de springer och gömmer sig i kön. Beskriv en smart algoritm för att sortera om kön. Antag att det visade sig vara tre personer som blev skrämda, hur många näsjämförelser behövs det då med din algortitm för att sortera om kön? Antal jämförelser: (10-1) + (2 + 1) = 12Antal jämförelser: (243-1) + (2 + 1) = 245