Kmom05: Sorteringsalgoritmer och datastrukturer
Vi ska titta på hur några av de vanligaste sorteringsalgoritmerna ser ut och fungerar. Inbyggda sorteringsfunktioner baseras på en eller flera av de klassiska algoritmerna.
Vi ska även titta på några datastrukturer och implementera en egen som vi använder i ett terminalprogram.
(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)
#Läsanvisningar
(ca: 8-10 studietimmar)
#Kurslitteratur
Läs följande:
Python 3 Object-oriented Programming
* Ch 7 - Queues
#Artiklar
Läs följande:
Det finns inga extra artiklar.
#Video
Titta på följande:
Videoserien Lär dig objektorienterad Python är tätt kopplat till kursmaterialet. Kika på de videor som börjar med 5.
What on Earth is Recursion? förklarar rekursion.
Getting sorted visualiserar olika sorteringsalgoritmer och går igenom komplexitet.
Quick Sort visualiserar quick sort.
Data Structures: Queue visualiserar en Queue.
Data Structures: Stack visualiserar en Stack.
#Lästips
Om du känner att du har tid och lust.
#Övningar & Uppgifter
(ca: 8-10 studietimmar)
#Övningar
Genomför följande övning för att träna dig.
Läs igenom artikeln “Rekursion”.
Läs igenom artikeln “Klassiska sorteringsalgoritmer”.
Läs igenom artikeln “Datastrukturer”.
#Uppgifter
Dessa uppgifter skall utföras och redovisas.
Gör uppgiften “Python med rekursiva funktioner” (lab 4)
Gör uppgiften “Terminalprogram med sortering av lista”
Skapa din me-sida version 5. Fördjupa dig i Bootstrap och Flask. Gör uppdateringar som du själv bestämmer. Du måste även dokumentera vad du gjort i din redovisningstext.
Fyll på redovisning.html med kursmomentets redovisningstext.
#Extra
- Det finns ingen extrauppgift.
#Resultat & Redovisning
(ca: 1-2 studietimmar)
Läs instruktionen om hur du skall redovisa.
Se till att följande frågor besvaras i redovisningstexten.
- Vad gjorde du för uppdatering av me-sidan?
- Har du fått mer förståelse för datastrukturer?
- Gick det bra att komma igång med rekursion?
- Känner du att du har förståelse för hur sorteringsalgoritmerna fungerar?
- Gick det bra att komma i gång med kursmomentet, var det lagom, för litet, för stort?
- Vilken del av kursmaterialet (böcker, artiklar, videor, etc) uppskattade du mest?
#Revision history
- 2016-12-16: (B, lew) Updated flask structure.
- 2016-06-09: (A, aar) Fler ändringar.
- 2016-06-01: (A, lew) Ändrade något.
- 2016-05-25: (A, aar) wow such change.
- 2016-04-12: (A, lew) Första utgåva.