Uppgift 6 våren 2008Uppgiften ska lämnas till din övningsledare på övningen den 27,29/2. Glöm inte försättsbladet (pdf) och att alla papper ska häftas samman eller lämnas in i en plastficka. Jag rekommenderar att du börjar i god tid. För godkänt måste du ha gjort samtliga deluppgifter. Det är tillåtet att göra enstaka fel och misstag men det är viktigt att du försöker lösa samtliga uppgifter. Om du kör fast med någon uppgift så finns det som vanligt hjälp att få på labbarna. HemuppgiftStudera avsnitten om sortering (4.1, 4.3-4.5, 4.8) i algoritmboken. Skriftlig uppgiftLös uppgift R-4.9, R-4.10 och R-4.12 i algoritmboken. Implementera quicksort i Java. Din algoritm ska sortera en vektor av heltal (int[]). Gör tre varianter av algoritmen.
Quicksort är ganska klurig att implementera. Var därför noga med att skriva bra och utförliga testmetoder. Det underlättar kodning och felsökning. Återanvänd gärna testkoden och implementationen av insättningssortering från uppgift 8 förra terminen. Du ska göra en experimentell jämförelse av körtiden för fyra olika algoritmer: insättningssortering samt de tre olika implementationerna av quicksort. Du ska testa att sortera vektorer av olika storlek (t.ex. 100, 1.000, 10.000, 100.000 och 1.000.000 element) och olika typer av data (t.ex. slumpmässiga tal, redan sorterade tal, baklänges sorterade tal). Resultaten av dina experiment ska presenteras i en kort rapport.
|