Kmom06: Sorteringsalgoritmer och datastrukturer

By . Latest revision .

Vi ska titta på hur några av de vanligaste sorteringsalgoritmerna ser ut och fungerar. Samtidigt ska vi lära oss hur man skriver rekursiva funktioner.

Bild på algoritmen Merge-sort.

Bild på algoritmen Merge-sort.

(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

  1. Sorting algorithms and big-O. Visar inte kod men men visualiserar och förklarar bra hur sorterings algoritmerna fungerar.

#Kurslitteratur

Läs följande:

#Artiklar

Läs följande:

  1. visualgo. Interaktiv sida som visualiserar hur tal sorteras och även pseudo kod för olika algoritmer.

  2. Python thinking recursively. Intressant artikel som pratar om hur rekursion fungerar i Python.

#Video

Titta på följande:

  1. Videoserien Lär dig objektorienterad Python är tätt kopplat till kursmaterialet. Kika på de videor som börjar med 5.

  2. CS50 Algorithms kolla från tidstämpel fram till 55 min.

  3. What on Earth is Recursion? förklarar rekursion.

  4. Getting sorted visualiserar olika sorteringsalgoritmer och går igenom komplexitet.

#Lästips

Om du känner att du har tid och lust.

  1. Sorting algoritms - geeksforgeeks

  2. A series of nonverbal algorithm assembly instructions - IDEA

#Övningar & Uppgifter

(ca: 8-10 studietimmar)

#Övningar

Genomför följande övning för att träna dig.

  1. Läs igenom artikeln “Rekursion”.

  2. Läs igenom artikeln “Klassiska sorteringsalgoritmer”.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Python med rekursiva funktioner” (lab 3)

  2. Gör uppgiften “Yahtzee5”. Spara din kod i mappen yahtzee5.

#Extra

Det finns inga extrauppgifter.

#Lämna in

Läs Lämna in och redovisa uppgift för att ta reda på hur ni lämna in era uppgifter när ni är klara.

#Revision history

  • 2018-01-31: (A, aar) Första version v2.
  • 2017-11-10: (PF1, mos) Utkast till v2.

Document source.