Programmeringsteknik för K och Media

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
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.
2D1311 Programmeringsteknik med PBL
Sökning och sortering Linda Mannila
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Logikprogrammering Ons, 25/9
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Några standardalgoritmer
Om Java C =>Java syntax variabler metoder färdiga klasser
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Hashing / Hash tabeller -- Kapitel 20. Hash? Varför en annan datastruktur? Konstant tid för både insert- och find- operationer.
Algoritm analys och rekursiva metoder kap 5,7
DAV B04 - Databasteknik Indexering (kap 14).
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmeringsbegrepp
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
Föreläsning 10 Minnesbilder. Minnesbilder steg 1 char ch; int[] vek; Bil bilen; Bil int[] char ch vek bilen.
Programmeringsteknik för Media1 & K1
Föreläsning 5, Kapitel 5 Använda Java-bibliotek för att få avancerad funktionalitet Kursbok: “Objects First with Java - A Practical Introduction using.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
1 Programmera med strängar nr 9 Tal till sträng Sträng till tal Grep Sträng till lista av ord.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Frekvenstabell Frekvenstabell Skriv ett program som slumpar ett tärningskast n gånger. Programmet skall därefter skriva ut en frekvenstabell över observationerna.
Föreläsning 4 Klasser Och Objekt.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 13.
INTRODUKTION TILL PROGRAMMERING
2D1311 Programmeringsteknik med PBL
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sorterings algoritmer.
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) Övning 4
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 2
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP– Föreläsning vecka Genomgång uppgifter Arbetsmetoder Repetition Kapitel 14 Metoder.
Föreläsning 7 Metoder Parametrar Klassmetod.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
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.
Malmö högskola Rolf Axelsson 2004/2005 DA7350, 10 poäng Fält - Vektor - Array Deklarera, skapa och använda Fält som parameter Föreläsning 9.
DA7351 Programmering 1 Fält och objekt Tvådimensionella fält Sortera fält Föreläsning 13.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Fält - Vektor - Array Deklarera, skapa och använda Fält som parameter Föreläsning 9.
Malmö högskola Rolf Axelsson 2001/2002 DA7010 Objektorienterad programmering 1, 5 poäng Indentering är viktigt! Efter startparentes, {, ska du indentera.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Malmö högskola Rolf Axelsson 2004/2005 DA7350, 10 poäng char Klassen String Klass och attribut Klass och metoder Föreläsning 30/
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
Att rita en funktion i ett koordinatsystem
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Föreläsning 11: Rekursion
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Programmeringsteknik för K och Media 1999-11-17 Föreläsning 7 Sökning (Kap 13.2) Linjärsökning Binärsökning Sortering (Kap 13.1) Urvalssortering Insättningssortering Linda Kann, Nada

Strängjämförelse För jämförelse av strängar finns metoderna public boolean equals(String s) public boolean equalsIgnoreCase(String s) För att avgöra bokstavsordning finns public int compareTo(String s) Anropet s1.compareTo(s2) ger negativt värde om s1 kommer före s2 positivt värde om s1 kommer efter s2 noll om strängarna är lika

Linjärsökning Var i en vektor finns ett visst värde? För String finns metoden indexOf(char c) som ger index för första förekomsten av tecknet c eller –1 när tecknet inte finns. När vektorn inte är sorterad är det lämpligt att undersöka värdena i tur och ordning. Det kallas linjärsökning (linear search).

Linjärsökning - metod //Söker med linjärsökning efter nyckel //Om nyckel inte finns returneras -1 public int linjSök(int nyckel) { for (int i=0; i<n; i++) if (v[i]==nyckel) return i; return -1; }

Binärsökning När vektorn är sorterad kan man söka snabbare. Algoritm: Beräkna intervallets mittpunkt. Avgör om det sökta värdet finns i första eller andra halvan och fortsätt söka där. Upprepa tills du hittar det sökta värdet eller tills intervallet krympt till ingenting (då fanns inte det sökta värdet med).

Binärsökning - metod public int binSök(int nyckel) { int min=0; int max=n-1; while (min<max) { int mitt=(min+max)/2; if (v[mitt]==nyckel) return mitt; else if (v[mitt]<nyckel) min=mitt+1; max=mitt-1; } return -1;

Urvalssortering En enkel metod för att sortera n värden. Algoritm: Välj ut det minsta värdet. Byt plats på minsta och första värdet. Fortsätt på samma sätt med resten av värdena. 14 17 14 19 13

Urvalssortering - metod //Sorterar hela vektorn v public void urvalsSortera() { for (int i=0; i<n-1; i++) { int min=i; for (int j=i+1; j<n; j++) if (v[j]<v[min]) min=j; int temp=v[min]; v[min]=v[i]; v[i]=temp; }

Insättningssortering En enkel metod för att sortera in ett nytt värde i en redan sorterad vektor med. Algoritm: Är värdet större än det sista värdet? Lägg isåfall det nya värdet sist och allt är klart. Annars: Börja från slutet av vektorn och flytta värden ett steg (från plats i till plats i+1) tills det nya värdet är större än värdet på plats i. 13 14 14 17 19

Insättningssortering - metod //Sorterar in talet nytt på rätt plats i vektorn v public void sättIn(int nytt) { int i=n-1; if (n==0) v[0]=nytt; else { while (i>=0 && nytt<v[i]) { v[i+1]=v[i]; i--; } v[i+1]=nytt; n++;

Sökning - prestanda Linjärsökning en vektor med n element kräver maximalt n jämförelser. Binärsökning i en vektor med n element kräver maximalt 2logn jämförelser. För stora vektorer går alltså binärsökning betydligt snabbare, vilket är ett skäl till att man ofta vill ha sorterade vektorer.

Sortering - prestanda Insättningssortering och urvalssortering av n värden kräver max n2/2 jämförelser. Det finns snabbare metoder för sortering, som bara kräver n 2log n jämförelser.