Datastrukturer
↑Datastrukturer avgör hur data lagras och vilka operationer som går snabbt. Valet beror på om du exempelvis behöver direkt indexering, tillägg i viss ordning eller snabb sökning.
- Arrayer: åtkomst via index
- Strängar: text och Unicode
- Hashtabeller: nycklar, buckets och kollisioner
- Stackar: sist in, först ut
- Köer: först in, först ut
Välj efter operationen
Section titled “Välj efter operationen”Om du redan känner till ett index och vill läsa värdet snabbt passar en array ofta bra. Om objekt ska behandlas i den ordning de kommer in använder du en kö. En stack tar i stället ut det senast tillagda objektet först och är praktisk för ångra-funktioner och nästlade operationer.
Testa innan du memorerar
Section titled “Testa innan du memorerar”Lägg till och ta bort värden i stack- och köexemplen. Prova sedan att ändra antalet buckets i hashtabellen utan att ändra nycklarna. När du kan förklara varför kollisionerna förändras förstår du också mer av uppslagskostnaden.
Implementation spelar roll
Section titled “Implementation spelar roll”En kö med ringbuffert fungerar annorlunda än en kö byggd genom att ständigt ta bort första objektet ur en vanlig arraylista. Läs varje sidas komplexitetsanalys och begränsningar innan du väljer datastruktur i ett eget projekt.
Bygg egna hash-baserade samlingar
Section titled “Bygg egna hash-baserade samlingar”Börja med bucket-simulatorn och fortsätt med hashfunktioner och kollisioner. Studera en fullständig hashtabell i C# med uppslag, borttagning och resizing. Jämför sedan HashSet, Dictionary och Hashtable, linjär probing och beläggningsgrad.
