Terminalprogram med sortering av lista

By . Latest revision .

Vi ska jobba med sorteringsalgoritmer. Ni uppdatera koden för Insertion sort så den funkar med er UnsortedList och sen ska ni skriva er egna Bubble sort.

#Förkunskaper

Du har gjort uppgiften “Skapa lista”.
Du har läst artikeln “Klassiska sorteringsalgoritmer”.
Du har läst artikeln “Datastrukturer”.

#Krav

Kopiera UnorderedList filerna från kmom04.

# Ställ dig i kurskatalogen
cd me
cp -i kmom04/list/*.py kmom05/sort/
cd kmom05/sort
  1. Skapa filen sort.py och kopiera in insertion sort från artikeln.
    “sort.py” behöver inte innehålla någon klass. Det räcker med enbart funktion för algoritmen.

  2. Justera din Insertion sort så den kan sortera din UnorderedList. PS! När ni skapar sorterings algoritmerna ska ni använda er av listans metoder för att flytta på element. Ni ska inte hämta head och traversera noder med den i era algoritmer.

  3. Lägg till ett menyval i main.py som sorterar listan med din Insertion sort.

  4. I sort.py skapa en rekursiv insertion sort algoritm som kan sortera din lista.

  5. Lägg till ett menyval i main.py som sorterar listan med din rekursiva insertion sort.

  6. Lägg till minst två tester för din rekursiva insertion sort i test.py.

# Ställ dig i kurskatalogen
dbwebb validate sort
dbwebb publish sort

Rätta eventuella fel som dyker upp och validera igen. När det ser grönt ut så är du klar.

#Extrauppgift

  1. Gör en implementation av Bubbel sort med rekursion. Gör ett eget menyval i main.py för att sortera med den.

  2. I sortering stöd att särskilja på heltal och strängar. Om en lista innehåller strängar och heltal ska heltalen sorteras till vänster och strängarna till höger, för sig.
    Exempel [3, "b", 1, "a", 2] –> [1, 2, 3, "a", "b"].

#Tips från coachen

Ni kan hårdkoda värden till er lista så ni slipper skriva in nya tal i terminalen hela tiden när ni ska utveckla sorteringsalgoritmen.

Validera ofta. Så slipper du en massa valideringsfel i slutet av övningen.

Lycka till och hojta till i forumet om du behöver hjälp!

#Revision history

  • 2020-02-05: (B, aar) Bytte bubble sort för rekursiv insertion sort.
  • 2018-01-31: (A, aar) Första versionen.
  • 2016-04-12: (PA, lew) Pre-release.

Document source.

Category: python.