Sökning och sortering. Linda Mannila

Storlek: px
Starta visningen från sidan:

Download "Sökning och sortering. Linda Mannila"

Transkript

1 Sökning och sortering Linda Mannila

2 Denna föreläsning Sökningsalgoritmer Sorteringsalgoritmer Modulen time

3 Sökning Vanlig uppgift i datorsammanhang Exempel: Hitta en viss person i ett register Söka efter ett telefonnummer I sorteringsalgoritmer (hitta max, hitta min) Olika sökalgoritmer Sekventiell (linjär) sökning Binärsökning

4 Sekventiell (linjär) sökning Linear search Går igenom alla element i en lista från början Jämför det aktuella elementet i listan med det vi söker efter Om det element vi tittar på är det vi söker har hittat elementet och kan sluta Annars gå framåt ett steg i listan, jämför med det vi söker efter etc. Om vi kommer till slutet av listan och inte har hittat elementet avsluta

5 Sekventiell sökning Fördelar? Simpel Snabb om det eftersökta elementet finns i början av listan Nackdelar? Långsam om det eftersökta elementet inte finns i början av listan (kräver en massa jämförelser)

6 Binärsökning Binary search För sorterade datasamlingar Börjar med att titta på det mittersta elementet i en lista, jämför det med det vi söker efter Om det vi söker efter är mindre än det vi tittar på kan skippa högra delen av listan och upprepa processen på den vänstra halvan Om det vi söker är större än det vi tittar på skippa vänstra halvan Om det vi söker är det vi tittar på avsluta, vi har hittat vårt element

7 Binärsökning Sorted Array Compare X to the middle value of the array. If X=Y, (the middle element) we are done. If X < Y, we continue our search confine the search to first half only. If X > Y, we continue our search confine the search to second half.

8 Binärsökning Fördelar? Snabb Nackdelar? Kräver att data är sorterat... Men det kan lösas med en snabb sorteringsalgoritm, så i praktiken inget problem

9 Sökning linear_for.py linear_while.py binary.py

10 Tidtagning Modulen time >>> import time >>> dir(time) [' doc ', ' name ', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']

11 Exempel -time # Returnerar info om den lokala tiden som en tupel >>> time.localtime() (2007, 11, 26, 17, 30, 16, 0, 330, 0) # Returnerar info om den lokala tiden som en sträng >>> time.asctime() 'Mon Nov 26 17:32: ' # Returnerar info om Greenwich-tiden som en tupel >>> time.gmtime() (2007, 11, 26, 15, 30, 19, 0, 330, 0) # Returnerar processorns tid i sekunder >>> time.clock() Kan användas för tidtagning # Pausar exekveringen för så många sekunder som man # skickar som argument till funktionen >>> time.sleep(2)

12 Exempel import time lista = range(100000) # t1 innehåller starttiden (i sekunder) t1 = time.clock() # Kör funktionen linear_search(lista, 750) # t2 innehåller sluttiden (i sekunder) t2 = time.clock() # Räknar ut exekveringstiden (i sekunder) exek_tid = t2-t1 # Skriver ut tiden (i sekunder och millisekunder) print "Exekveringen tog %0.4f sekunder" % exek_tid print "Exekveringen tog %0.4f millisekunder" % (exek_tid * 1000)

13 Sökning Exempel med tidtagning search.py search_avg.py Med lite avancerade features för den som är intresserad Illustrerar hur man kan skicka funktioner som argument till en annan funktion Krävs ej för kursen search_func_as_params.py search_func_as_params_nicer_output.py

14 Sortering Bubble sort Selection sort Insertion sort Merge sort Quicksort Rekursiva torsdagens tema

15 Bubble sort Enklaste sorteringsalgoritmen Tyvärr också den minst effektiva Grundidén är att gå igenom en lista med element upprepade gånger, se på två närliggande element åt gången och byta plats på dem ifall de kommer i fel ordning Flashdemo: bubble.swf

16 Selection sort Från början är hela listan osorterad Grundidén är att hela tiden välja ut det största elementet i den osorterade delen av listan och byta plats med det och det sista elementet i den osorterade delen av listan. Samtidigt ökar antalet element i den sorterade delen med ett och antalet i den osorterade delen minskar med ett. Flashdemo: selection.swf

17 Insertion sort Från början är hela listan osorterad. Grundidén är att samla de sorterade elementen i rätt ordning i början av listan. Ett element i taget från den osorterade delen insätts på rätt plats i den sorterade delen. Samtidigt ökar antalet element i den sorterade delen med ett och antalet i den osorterade delen minskar med ett. Flashdemo: insertion.swf

TDDC30. 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 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 mer

Föreläsning 11 Datastrukturer (DAT037)

Fö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 mer

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9 Quicksort Koffman & Wolfgang kapitel 8, avsnitt 9 1 Quicksort Quicksort väljer ett spcifikt värde (kallat pivot), och delar upp resten av fältet i två delar: alla element som är pivot läggs i vänstra delen

Läs mer

Programmering för språkteknologer II, HT2014. Rum

Programmering 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 mer

Magnus Nielsen, IDA, Linköpings universitet

Magnus 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 mer

Sökning och sortering

Sö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 mer

Föreläsning 11 Innehåll

Fö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 mer

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad?

Sortering. 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 mer

Problemlösning och funktioner Grundkurs i programmering med Python

Problemlösning och funktioner Grundkurs i programmering med Python Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy 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 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. 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 mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim   Sorteringsalgoritmer Objektorienterad programmering Föreläsning 10 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Fält fort. Fält som parametrar Parameterfält params Parametrar till Main Listor ArrayList

Läs mer

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander F9 - Polymorfism ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Polymorfism - flerformighet Vi vet vad metoden heter (signaturen) Men vi vet inte vid anropet exakt vilken metod som faktiskt

Läs mer

Sökning och sortering. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista

Sökning och sortering. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista Sökning och sortering Sökning och sortering - definitioner Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man

Läs mer

Sökning och sortering

Sökning och sortering Sökning och sortering Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data och många sökningar måste

Läs mer

samt lite algoritmer en kortfattad introduktion för studenter på Intro:DV

samt lite algoritmer en kortfattad introduktion för studenter på Intro:DV O, P, N och NP samt lite algoritmer en kortfattad introduktion för studenter på Intro:DV DSV En enkel algoritm Ponera att du spelar poker och har fått korten till höger. Eftersom det bara rör sig om fem

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, 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 mer

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Tentamen 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 mer

Föreläsning 12 Innehåll

Fö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 mer

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista Sökning och sortering Sökning i oordnad lista Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data

Läs mer

Föreläsning 12 Innehåll

Fö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 mer

Tenta i Grundläggande programmering DD klockan

Tenta i Grundläggande programmering DD klockan Tenta i Grundläggande programmering DD1331 2017-10-20 klockan 14.00 16.00 Marcus Dicander, KTH CST Tillåtna hjälpmedel: En Pythonbok, skrivmaterial, mat, medicin och vattenflaska. Otillåtna hjälpmedel:

Läs mer

Sortering. Brute-force. Sortering Ordna element enligt relation mellan nyckelvärden

Sortering. Brute-force. Sortering Ordna element enligt relation mellan nyckelvärden Sortering Brute-force Sortering Ordna element enligt relation mellan nyckelvärden Flera olika algoritmer med olika fördelar Brute-force Gå igenom alla permutationer och hitta den där elementen ligger i

Läs mer

Planering av ett större program, del 2 - for och listor. Linda Mannila

Planering av ett större program, del 2 - for och listor. Linda Mannila Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)

Läs mer

Föreläsning 5 Innehåll

Fö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 mer

Ordlistor, filhantering och ut på webben. Linda Mannila 20.11.2007

Ordlistor, filhantering och ut på webben. Linda Mannila 20.11.2007 Ordlistor, filhantering och ut på webben Linda Mannila 20.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Funktioner och moduler

Läs mer

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer 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 mer

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING Föreläsning 11 12 ALGORITMER: SÖKNING, REGISTRERING, SORTERING Seminarier: Fredagsklubben för dig som tycker att programmering är svårt (0 eller möjligen 1 poäng på delmålskontrollen) inte avsedda för

Läs mer

Fö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. 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 mer

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 4 oktober 2017 1 Idag Algoritmkonstruktion (lite blandat) Redovisning och inlämning av labbteori 3 2 Uppgifter Uppgift

Läs mer

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom: 6 Rekursion 6.1 Rekursionens fyra principer Problem löses genom: 1. förenkling med hjälp av "sig själv". 2. att varje rekursionssteg löser ett identiskt men mindre problem. 3. att det finns ett speciellt

Läs mer

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Sökning och Sortering: Binärsökning Problem: Hitta ett element i en godtycklig

Läs mer

Fö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. 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 mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 9 oktober 2015 Anton Grensjö ADK Övning 6 9 oktober 2015 1 / 23 Översikt Kursplanering Ö5: Grafalgoritmer och undre

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Introduktion till programmering SMD180. Föreläsning 9: Tupler Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

Föreläsning 5. Rekursion

Föreläsning 5. Rekursion Föreläsning 5 Rekursion Föreläsning 5 Algoritm Rekursion Rekursionsträd Funktionsanrop på stacken Binär sökning Problemlösning (möjliga vägar) Algoritm En algoritm är ett begränsat antal instruktioner/steg

Läs mer

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Objektorienterad 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 mer

Problemlösning och algoritmer

Problemlösning och algoritmer Problemlösning och algoritmer Human Centered Systems Inst. för datavetenskap Linköpings universitet Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS regeln Procedurell dekomposition

Läs mer

Rekursiva algoritmer sortering sökning mönstermatchning

Rekursiva algoritmer sortering sökning mönstermatchning Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell

Läs mer

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon. Datastrukturer och algoritmer Föreläsning 7 Tabell, hashtabell Relation & lexikon Innehåll Tabell Tabell Hashtabell Relation, lexikon Modell Uppslagsbok Organisation Ändlig avbildning av argument på värden

Läs mer

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Algoritmanalys. 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 mer

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00 TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 170117 kl. 14:00-19:00 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilagarna. *** OBS *** Betygsgräns:

Läs mer

Föreläsning 2 Datastrukturer (DAT037)

Fö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 mer

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler

Läs mer

TDDC30. 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 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 mer

TDDC74 Lab 02 Listor, sammansatta strukturer

TDDC74 Lab 02 Listor, sammansatta strukturer TDDC74 Lab 02 Listor, sammansatta strukturer 1 Översikt I denna laboration kommer ni att lära er mer om: Mer komplexa rekursiva mönster, procedurer och processer. Hur man kan hantera listor och andra enklare

Läs mer

Föreläsning 13. Rekursion

Föreläsning 13. Rekursion Föreläsning 13 Rekursion Rekursion En rekursiv metod är en metod som anropar sig själv. Rekursion används som alternativ till iteration. Det finns programspråk som stödjer - enbart iteration (FORTRAN)

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Algoritmer. Två gränssnitt

Algoritmer. 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 mer

Övning 4. Hashning, sortering, prioritetskö, bästaförstsökning. Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen?

Övning 4. Hashning, sortering, prioritetskö, bästaförstsökning. Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen? Per Sedholm DD1320 (tilda12) 2012-09-20 Övning 4 Hashning, sortering, prioritetskö, bästaförstsökning 1. Perfekt hashfunktion Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen? Vi

Läs mer

Algoritmer och effektivitet. Föreläsning 5 Innehåll. Analys av algoritmer. Analys av algoritmer Tidskomplexitet. Algoritmer och effektivitet

Algoritmer 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 mer

Laboration: Whitebox- och blackboxtesting

Laboration: Whitebox- och blackboxtesting Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska

Läs mer

Innehåll. Sökning och hashtabeller. En bilsamling att söka i. En bil-klass att söka efter. Hur hittar vi alla bilar som uppfyller ett annat villkor

Innehåll. Sökning och hashtabeller. En bilsamling att söka i. En bil-klass att söka efter. Hur hittar vi alla bilar som uppfyller ett annat villkor Innehåll Sökning och hashtabeller Henrik Bergström henrikbe@dsv.su.se Sökning i linjära strukturer Söka efter många objekt Sökning efter ett objekt Sekventiell sökning Binär sökning Sökning efter godtyckligt

Läs mer

Datastrukturer D. Föreläsning 2

Datastrukturer 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 mer

Övningsuppgifter #11, Programkonstruktion och datastrukturer

Övningsuppgifter #11, Programkonstruktion och datastrukturer Övningsuppgifter #11, Programkonstruktion och datastrukturer Lösningsförslag Elias Castegren elias.castegren@it.uu.se Övningar 1. 1 2. 2 3. Ett binomialträd med rang n har 2 n noder. En binomial heap innehåller

Läs mer

Föreläsning 1: Dekomposition, giriga algoritmer och dynamisk programmering

Föreläsning 1: Dekomposition, giriga algoritmer och dynamisk programmering 2D1458, Problemlösning och programmering under press Föreläsning 1: Dekomposition, giriga algoritmer och dynamisk programmering Datum: 2007-09-04 Skribent(er): Anders Malm-Nilsson och Niklas Nummelin Föreläsare:

Läs mer

Några saker till och lite om snabbare sortering

Några saker till och lite om snabbare sortering Några saker till och lite om snabbare sortering Generellt om avbrott Generera avbrott Snabb sortering principer Snabb sortering i Scheme och Python QuickSort (dela städat slå ihop) Mergesort (dela slå

Läs mer

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen 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 mer

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade. Sortering Den sorteringsalgoritm som vi använder oss kallas selection sort (urvalssortering) och är en av många existerande sorteringsalgoritmer. Dess funktionssätt beskrivs kanske bäst genom ett konkret

Läs mer

Föreläsning REPETITION & EXTENTA

Fö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 mer

Vad har vi pratat om i kursen?

Vad har vi pratat om i kursen? Vad har vi pratat om i kursen? Föreläsning 1 & 2 Systemminnet och systemstacken Rekursion Abstrakta datatyper Föreläsning 3 ADT:n Länkad lista Föreläsning 4 ADT:n Kö ADT:n Stack Föreläsning 5 Komplexitet

Läs mer

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo, 729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer

Läs mer

1 Standardalgoritmer. 1.1 Swap. 1.2 Sök minsta värdet i en array

1 Standardalgoritmer. 1.1 Swap. 1.2 Sök minsta värdet i en array 1 Standardalgoritmer En algoritm är en beskrivning av en metod för att låsa någon uppgift. Man specificerar indata och utdata. Indatat ges av metodargument och utdata ges som regel av returtypen. 1.1 Swap

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 16 2 Innehåll Snabbrepetition Exempeltentamen Kursutvärdering Mina målsättningar Kursens mål: 3 Rolig och viktig kurs Bli en bättre programmerare och inse att

Läs mer

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4 Grafer, traversering Koffman & Wolfgang kapitel 1, avsnitt 4 1 Traversering av grafer De flesta grafalgoritmer innebär att besöka varje nod i någon systematisk ordning precis som med träd så finns det

Läs mer

Programmering II (ID1019) :00-17:00

Programmering II (ID1019) :00-17:00 ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

GOTO och lägen. Några saker till och lite om snabbare sortering. GOTO och lägen (3) GOTO och lägen (2)

GOTO och lägen. Några saker till och lite om snabbare sortering. GOTO och lägen (3) GOTO och lägen (2) Några saker till och lite om snabbare sortering GOTO och lägen GOTO hemskt eller ett måste? CASE enkla val över diskreta värdemängder Snabb sortering principer Snabb sortering i Scheme och Pascal QuickSort

Läs mer

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

TDDI16 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 mer

Några saker till och lite om snabbare sortering

Några saker till och lite om snabbare sortering Några saker till och lite om snabbare sortering GOTO hemskt eller ett måste? CASE enkla val över diskreta värdemängder Snabb sortering principer Snabb sortering i Scheme och Pascal QuickSort (dela städat

Läs mer

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen Databaser Design och programmering Fysisk design av databasen att ta hänsyn till implementationsaspekter minnesteknik filstrukturer indexering Minnesteknik Primärminne (kretsteknik) Flyktigt Snabbt Dyrt

Läs mer

TDDC30. 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 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 mer

Datalogi för E Övning 3

Datalogi för E Övning 3 Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna

Läs mer

Datastrukturer och algoritmer

Datastrukturer 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 mer

Sortering. Föreläsning 12 Innehåll. Sortering i Java. Sortering i Java Exempel. Sortering

Sortering. 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 mer

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L. KTH, Nada, Erik Forslin 2D1343, LÖSNING TILL TENTAMEN I DATALOGI FÖR ELEKTRO Lördagen den 8 mars 2003 kl 14 19 Maxpoäng tenta+bonus = 50+7. Betygsgränser: 25 poäng ger trea, 35 ger fyra, 45 ger femma.

Läs mer

KTH, NADA, Vahid Mosavat. 1. Flervalsfrågor (5p)

KTH, NADA, Vahid Mosavat. 1. Flervalsfrågor (5p) KTH, NADA, Vahid Mosavat 2D1343, TENTAMEN I DATALOGI FÖR ELEKTRO Onsdagen den 31 mars 2004 kl 8-13 Maxpoäng: tenta+bonus = 50+7. Betygsgränser: 25 poäng ger trea, 35 ger fyra, 45 ger femma. Otydliga/svårlästa

Läs mer

SORTERING OCH SÖKNING

SORTERING 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 mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts Databaser Design och programmering Fysisk design av databasen att ta hänsyn till implementationsaspekter minnesteknik filstrukturer indexering 1 Minnesteknik Primärminne (kretsteknik) Flyktigt Snabbt Dyrt

Läs mer

Fö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. 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 mer

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd Innehåll Föreläsning 12 Sökträd Sökning Sökning och Sökträd 383 384 Binärt sökträd Används för sökning i linjära samlingar av dataobjekt, specifikt för att konstruera tabeller och lexikon. Organisation:

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla TentamensKod: Tentamensdatum: 180322 Tid: 09.00 13.00 Hjälpmedel:

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk 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 mer

Föreläsning 9. Sortering

Fö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 mer

Föreläsning 6 Innehåll. Rekursion. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursiv problemlösning. Rekursion. Rekursivt tänkande:

Föreläsning 6 Innehåll. Rekursion. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursiv problemlösning. Rekursion. Rekursivt tänkande: Föreläsning 6 Innehåll Rekursion Begreppet rekursion Rekursiv problemlösning Samband mellan rekursion och induktion Söndra-och-härska-algoritmer Dynamisk programmering Undervisningsmoment: föreläsning

Läs mer

Föreläsning 13 Innehåll

Fö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 mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

TDDC74 - Lektionsmaterial C

TDDC74 - Lektionsmaterial C TDDC74 - Lektionsmaterial C Lektioner innehåller uppgifter av varierande slag. En del är mer diskussionsartade, andra mer experimentella. Ni behöver inte lämna in eller visa upp lösningarna på dessa för

Läs mer

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 9 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Fält Grunderna Fält med komponenter av struct-typ Fält med referenser Standardklassen

Läs mer

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Fö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 mer

TDDC30. 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 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,

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Lösning av några vanliga rekurrensekvationer

Lö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 mer

729G04 Programmering och diskret matematik. Python 3: Loopar

729G04 Programmering och diskret matematik. Python 3: Loopar 729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel

Läs mer