Teoriuppgifter till labb 1
- Inlämningsdatum 6 sep 2018 av 10.15
- Poäng 1
Dessa teoriuppgifter hör till labb 1 och kan redovisas för en teoripoäng till tentan. Redovisningen görs skriftligt och muntligt på övningen den 6 september (ingen annan redovisningsmöjlighet finns). Det är frivilligt att redovisa teoriuppgifterna, men för att klara av att göra labben bör du ha gjort dom. Arbeta gärna i grupp med labbteoriuppgifterna, men var och en ska av administrativa skäl ta med en egen skriftlig lösning med namn på som lämnas in vid redovisningen. Skriv gärna för hand!
Läsanvisningar för teoriuppgifterna:
|
Teoriuppgifter
- Vilka är rollerna vid parprogrammering och vilka uppgifter har varje roll?
- Indexinformationen för ett ord (det vill säga i vilka teckenpositioner ordet förekommer i den stora texten) kan bli mycket stor. Hur bör positionerna lagras för att det ska bli effektivast, som text eller binärt (data streams i Java)? Bör indexinformationen lagras tillsammans med själva ordet eller på ett separat ställe?
- I denna labb ska datastrukturen för konkordansen huvudsakligen ligga på fil, vilket betyder att sökningar görs i filen istället för som vanligt i internminnet. Det påverkar till exempel hur man representerar pekare (lämpligen som bytenummer i filen). Diskutera för- och nackdelar med olika implementationer av konkordansen med avseende på följande egenskaper:
-
snabbhet (antal filläsningar och filpositioneringar per sökning),
-
minneskomplexitet för fillagringen (bara konstant mycket internminne ska användas)
-
enkelhet att konstruera och lagra på fil.
-
binärt sökträd,
-
sorterad array,
-
hashtabell,
-
trie (träd där varje nivå motsvarar en bokstav i ordet),
-
latmanshashning
-
- Ge exempel på minst 7 indata (dvs ord) som är lämpliga testfall i labb 1 och motivera varför.