1) a) Som pivotelement tar jag alltid delarrayens första. 4 6 2 8 3 7 1 5 osorterad array. 2 3 1(4)6 8 7 5 4 pivot, större före, mindre efter. 1(2)3 | 5(6)7 8 2 pivot i första delen, 6 pivot i andra delen. (1)|(3)|(5)|(7)8 | | | | | | |(8) Pivotelement inom parentes. När 4 är placerad så sätter jag "|" under den för att markera att den inte rörs i fortsättningen under sorteringen. osv. b) Partitionering av n element har komlexiteten O(n). I medelfallet är komplexitetan O(n log n) eftersom man O(log n) gånger (Man delar antal element ungefär på mitten varje gång.) gör en partitionering. I värsta fallet är komplexiteten n^2 eftersom man O(n) gånger (Alla element hamnar på ena sidan pivotelementet.) gör en partitionering. c) Om två element med samma nyckel i den osorterade listan kommer att ligga i samma inbördes ordning i den sorterade är sorteringern stabil. Om man vill sortera i flera steg, t.ex. personposter i första hand efter ålder och i andra hand efter högskolepoäng, så vill man inte att ett andra steg (ålder) ska förstöra första stegets sortering (poäng). Quicksort är inte stabil. 2) a) 3 / \ / 6 / / \ 1 4 7 \ \ \ 2 5 9 / 8 b) Ersätt 6 med det minsta talet>6 (dvs 7) borttaget ur delträdet till höger om 6. 3 / \ / 7 / / \ 1 4 8 \ \ \ 2 5 9 c) 2 1 5 4 8 9 7 6 3 3) a) Den ena av landfordon och sjöfordon är en vanlig klass, den andra är ett interface. Klassen ärvs, interfacet implementeras. Ett interface kan bara innehålla abstrakta metoder. b) En konstruktor är en metod som anropas när ett objekt skapas och som lämpligen initierar objektet. c) En rektangel horisontellt delad i tre delar: - Namn - Attribut/variabler - Operationer/metoder 4) a) bak fram | | V V +--+--+ +--+--+ +--+--+ |a | -+-->|b | -+-->|c | -+--...->(tillbaka till första cellen) +--+--+ +--+--+ +--+--+ Problem: Kön kan bli full. b) Tag bort (b) först ur kön: bak fram | | V V +--+--+ +--+--+ +--+--+ |a | -+-->|b | -+-->|c | -+--...->(tillbaka till första cellen) +--+--+ +--+--+ +--+--+ Lägg till (d) sist i kön: bak fram | | V V +--+--+ +--+--+ +--+--+ |a | -+-->|d | -+-->|c | -+--...->(tillbaka till första cellen) +--+--+ +--+--+ +--+--+ Båda operationerna har komplexiteten O(1).