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

Relevanta dokument
Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Datastrukturer och algoritmer

Datastrukturer och algoritmer

Tentamen Datastrukturer för D2 DAT 035

Introduktionsmöte Innehåll

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

Lösningar Datastrukturer TDA

Poäng. Start v. DV1: Datavetenskapens byggstenar 7.5. Antal registrerade (män/kvinnor) 38 (38/0)

Tentamen Datastrukturer D DAT 035/INN960

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

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

Föreläsning 14 Innehåll

Innehåll. Inblandade personer. ÿkurspresentation Inblandade personer Administration Målsättning Förkunskaper Kursutvärdering Upplägg Översikt

Tentamen Datastrukturer D DAT 036/INN960

Tentamen Datastrukturer D DAT 036/INN960

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datastrukturer och algoritmer

Innehåll. F7: Tabell, hashtabell, relation & lexikon. Gränsyta till Tabell. Tabell. Tabell Hashtabell Relation Lexikon.

Föreläsning Datastrukturer (DAT037)

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

Föreläsning 13 Datastrukturer (DAT037)

Teoretisk del. Facit Tentamen TDDC (6)

Föreläsning 13 Datastrukturer (DAT037)

EDAA01 Programmeringsteknik - fördjupningskurs

Föreläsning Datastrukturer (DAT037)

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

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 1 Datastrukturer (DAT037)

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

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Tentamen Datastrukturer (DAT036)

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Facit Tentamen TDDC (7)

Föreläsning 9 Innehåll

Föreläsning 13. Träd

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Föreläsning Datastrukturer (DAT036)

Tentamen Datastrukturer, DAT037 (DAT036)

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Poäng. Start v. Datastrukturer och algoritmer (C) 7.5. Antal registrerade (män/kvinnor) 98 (82/16)

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

::= HIHI HIHIHI ::= HAHA HAHAHA

Programmeringsteknik II

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Tentamen kl Uppgift 4. Uppgift 5

DAI2 (TIDAL) + I2 (TKIEK)

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Innehåll. Föreläsning 10. Specifikation. Mängd. Specifikation. Konstruktion av mängd. Mängd Lexikon Hashtabell

Tentamen: Programutveckling ht 2015

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

Tentamen i Algoritmer & Datastrukturer i Java

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Tentamen i Algoritmer & Datastrukturer i Java

Seminarium 13 Innehåll

Föreläsning 4 Datastrukturer (DAT037)

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Programkonstruktion och. Datastrukturer

Fredag 10 juni 2016 kl 8 12

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Träd Hierarkiska strukturer

Föreläsning 5 Innehåll

Tentamen Datastrukturer D DAT 035/INN960

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Poäng. Start v. Datastrukturer och algoritmer (Python) 7.5. Antal registrerade (män/kvinnor) 65 (57/8)

Tildatenta Lösningsskiss

Föreläsning 6 Datastrukturer (DAT037)

Tentamen Datastrukturer, DAT037 (DAT036)

Facit Tentamen TDDC kl (6)

Teoretisk del. Facit Tentamen TDDC (6)

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

Lösningsförslag DD1320/DD

Exempeltenta GruDat 2002/2003

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Sökning och sortering

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm?

Tentamen Datastrukturer (DAT037)

Vad har vi pratat om i kursen?

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13

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

Tentamen, Algoritmer och datastrukturer

Dugga Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036)

Föreläsning 13 Innehåll

Tillämpad Programmering (ID1218) :00-13:00

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

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Tentamen Datastrukturer (DAT036)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer D DAT 036/DIT960

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036)

Föreläsning 2 Datastrukturer (DAT037)

Sätt att skriva ut binärträd

Transkript:

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 par snäpp som programmerare. Förstå komplexitetsbegreppet Tid och rum Ni ska ha lärt er några viktiga typer av algoritmer och datatyper Rolig kurs 3

Kursutvärdering Sker via webben, anonymt. Ni får ett automatgenererat mail med inloggningsuppgifter och länk till värderingen. Öppen i ca 2v Påminnelsemail till de som ej svarat går ut en gång under tiden. Sammanfattning av värdering av alla inblandade och fakta om kursen samlas i en kursrapport. Vi behöver minst en student som granskar denna och är med på ett avslutande möte om kursen. 4

Innehållsöversikt Algoritmer Pseudokod som ett sätt att beskriva algoritmer Tids och rumskomplexitet Komplexitetsanalys (exprimentell och asymptotisk) Designprinciper Abstrakta datatyper Stack, Kö, Listor, Träd, Graf, Prioritetskö, Heap, Tabell, Sträng, Mängd, Sökträd, Tries,... med tillhörande algoritmer Sökning och Sortering Målet är att ni efter kursen kan hitta och implementera en bra algoritm som passar för en given situation Testning och felsökning 5

Kursens lärmål (FSR) Kunskap och förståelse förklara grundläggande begrepp relaterade till datastrukturer och algoritmer, Tentamen + labbar beskriva vanliga abstrakta datatyper och algoritmer, Tentamen + labbar 6

Kursens lärmål (FSR) Färdighet och förmåga formulera lösningar till enkla problem i form av algoritmer inklusive att identifiera och använda lämpliga datatyper, Tentamen + labbar implementera lösningen i form av ett program i programspråket Python, Labbar tillämpa dynamisk minnesallokering, Labbar använda sig av grundläggande problemlösningsstrategier, Tentamen + labbar experimentellt och teoretiskt undersöka en mjukvaras tids- och minneskomplexitet, samt redogöra för och dokumentera utfallet enligt givna riktlinjer, Tentamen + labbar 7

Kursens lärmål (FSR) Färdighet och förmåga, forts visa att en komponent i ett program fungerar korrekt med hjälp av testning, Labbar använda sig av en debugger för att hitta fel i program. Labbar visa förståelse för hur struktur-, tids- och minnesaspekter påverkar kvalitet hos program. Tentamen + labbar 8

Genomgång av gammal tenta (130326, 8 uppgifter 40p) Uppgifterna är oordnade Gör ett försök på alla uppgifter men gå vidare om du kör fast. Om du inte kan lösa en av flera deluppgifter, gör lämpliga antaganden och gå vidare till efterföljande deluppgifter. Tankegången skall vara lätt att följa. Alla antaganden som inte är uppenbara skall redovisas. Det är ditt ansvar att övertyga om att du besitter den kunskap som efterfrågas. Det är viktigt att du löser den givna uppgiften! 9

Uppgift 1 fält och pseudokod (5 p) Skriv en algoritm i pseudokod som, givet två fält array) med heltal avgör om arrayerna innehåller samma värden. Ordningen eller antalet av varje värde ska inte spela någon roll. Algoritmen skall returnera sant om arrayerna innehåller samma värden, falskt annars. Använd er av operationerna i datatypen i er algoritm. Exempel: { 1, 2, 3, 4, 100, 120} { 1, 4, 100, 2, 120, 3} -> sant { 2, 5, 8, -2, -2, 100, 102} { 2, 5, -2, 100, 102} -> falskt 10

Uppgift 1 När man rättar tittar man på Kan man lösa problemet? Kan man uttrycka lösningen som pseudokod? Vet man hur datatyperna används? Idé för lösning: Ta första arrayen och kolla att alla element finns med i den andra. Ta andra arrayen och kolla att alla element finns med i den första.

Uppgift 2 sortering (2+2 = 4p) a) Beskriv kortfattat sorteringsalgoritmerna insertion sort och quicksort med ord eller pseudokod. (Skriv bara några få meningar eller pseudokodsrader per algoritm). b) Vad har respektive algoritm för medelfallskomplexitet? 12

Uppgift 3 datatyper (2+2+1 = 5p) a) Förklara vad som menas med en prioritetskö. b) Ange någon datastruktur som kan användas för att implementera en prioritetskö så att alla operationer får maximalt tidskomplexitet O(log(n)). Motivera ditt svar. c) För att traversera en graf bredden först så har man stor nytta av en annan datatyp. Vilken? 13

Uppgift 4 hashtabeller (1+1+2=4p) a) Vad menas med linjär teknik för hantering av kollisioner i en sluten hashtabell? b) Vilka problem kan uppstå när man använder linjär teknik? c) Antag att man har satt in element vars nycklar är heltal i en hashtabell som representerats av en vektor med storlek 11 och hash-funktion h(x)=x % 11. I denna har man har satt in 4 element och vektorn ser då ut på följande sätt: - - 13 36 15 5 - - - - - där tecknet symboliserar tom plats. Visa hur fältet ser ut efter insättning av värdena 26 och 12 om linjär teknik för att hantera kollisioner används. 14

Uppgift 5 ordförståelse (8p) 1) Abstrakt datatyp 2) Relativ komplexitet 3) Gles matris 4) Objektfullständighet 5) Gränsyta 6) Hanterbara problem 7) Komplett graf 8) Divide & Conquer 15

Uppgift 6 komplexitetsanalys (2 + 2 = 4p) Antag att variabeln m är en tredimensionell matris med NxNx7 flyttal: m[n][n][7] a) Vi vill summera talen i matrisen m, med den här algoritmen: summa <- 0 for i <- 0 to N-1 do for j <- 0 to N-1 do for k <-0 to 6 do summa <- m[i][j][k]+ summa Vilken tidskomplexitet har algoritmen? b) Vi provkör programmet med N = 5000. och ser att summeringen av matrisen m tar 5 sekunder. Hur lång tid kan vi räkna med att den summeringen tar om N = 10000? 16

Uppgift 7 träd (2+2+2=6p) a) Stoppa in noderna med elementvärdena 3,5,6,7,1,4,2 och 0 i ett binärt sökträd. Du skall stoppa in noderna i exakt denna ordning och visa hur trädet ser ut efter varje ny insatt nod. b) Utför en sökning efter talet 2, visa hur sökningen går till och tala om hur många noder som du besökt innan du fann talet 2. c) Givet trädet nedan ange ordningen som noderna besöks givet de olika traverseringsstrategierna nedan. a) Djupet först inorder b) Djupet först postorder 17

Uppgift 8 grafer (4p) Personerna A, B, C, D, E och F bor tillsammans i ett hus. De vill koppla samman sina datorer, men använda så lite kabel som möjligt. Minimala kabelavståndet mellan två datorer ges av följande grannmatris. A B C D E F A 0 2 1 5 7 5 B 2 0 5 10 6 9 C 1 5 0 5 6 4 D 5 10 5 0 8 2 E 7 6 6 8 0 4 F 5 9 4 2 4 0 Rita en bild som visar hur A, B, C, D, E och F bör koppla samman sina datorer. Förklara också hur algoritmen du använt fungerar genom att rita bilder som visar hur algoritmen steg för steg konstruerar kabelnätet. 18