hash-tabeller datastruktur notater

Notater om hash-tabeller, en viktig datastruktur innen datavitenskap, med fokus på prinsipper, operasjoner og anvendelser. Dette settet vil hjelpe studenter med å forstå og anvende hash-tabeller i programmering og algoritmeanalyse.

Oliver2007·32 flashkort·32 spørsmål
universitetcomputer_sciencealgorithms
0
Kjent
1 / 32
0
Lærer
Forside

Hva er en hash-tabell?

Trykk for å vende
Bakside

En hash-tabell er en datastruktur som bruker en hash-funksjon for å mappe nøkler til verdier. Den gir rask tilgang til data.

Trykk for å vende
Skjønner
Lærer fortsatt

Quiz(32 spørsmål)

Spørsmål 1 av 32

1. Hva beskriver best en hash-tabell?

Begreper i dette studiesettet(32)

Introduksjon til hash-tabeller(16)

Hva er en hash-tabell?

En hash-tabell er en datastruktur som bruker en hash-funksjon for å mappe nøkler til verdier. Den gir rask tilgang til data.

Hvorfor brukes hash-tabeller?

De gir O(1) gjennomsnittlig tidskompleksitet for søk, innsetting og sletting. Dette gjør dem effektive for store datamengder.

Sann eller usann: Hash-funksjoner er alltid entydige.

Usann. Hash-funksjoner kan føre til kollisjoner, hvor to nøkler gir samme hash-verdi.

Kollisjon → ?

Når to forskjellige nøkler gir samme hash-verdi. Krever håndtering for å opprettholde dataintegritet.

Hva er en hash-funksjon?

En algoritme som tar en nøkkel og returnerer en indeks i en hash-tabell. Det er viktig at den sprer verdiene jevnt.

Sammenlign: Array vs. hash-tabell.

Array: Fast størrelse, sekvensiell tilgang. Hash-tabell: Dynamisk størrelse, tilfeldig tilgang via nøkler.

Fyll inn: Hash-tabeller lagrer data som ...

... nøkkel-verdi-par. Nøkkelen brukes til å hente verdien.

Effekten av en dårlig hash-funksjon?

Kan føre til mange kollisjoner, reduserer ytelsen til O(n) i verste fall. Dårlig for datatilgang.

Hva er belastningsfaktor?

Forholdet mellom antall elementer i tabellen og størrelsen på tabellen. Høy belastningsfaktor kan føre til flere kollisjoner.

Sann eller usann: Hash-tabeller er alltid den beste løsningen.

Usann. De er effektive, men ikke alltid best ved små datamengder eller hvis rekkefølge er viktig.

Hva er chaining?

En metode for kollisjonshåndtering hvor hver tabellindeks peker på en liste med elementer som kolliderer.

Eksempel på hash-funksjon:

En enkel hash-funksjon kan være: hash(key)=key mod size\displaystyle hash(key) = key \bmod size, hvor 'size' er tabellens størrelse.

Hva er åpen adressering?

En kollisjonshåndteringsmetode hvor man leter etter neste ledige plass i tabellen.

Hvorfor er hash-tabeller nyttige i databaser?

De gir rask tilgang til data, noe som er viktig for søk og oppdateringer i store datamengder.

Effekten av å øke tabellstørrelsen?

Reduserer belastningsfaktoren og minimerer antall kollisjoner, noe som forbedrer ytelsen.

Hva er hovedkonseptet bak hash-tabeller?

Hash-tabeller bruker en hash-funksjon for å konvertere nøkkelverdier til indekser, noe som muliggjør rask tilgang til data. - Rask søk - Effektiv lagring - Håndtering av kollisjoner.

Operasjoner på hash-tabeller(16)

Hva er innsetting i hash-tabeller?

Prosessen med å legge til en verdi i tabellen. Krever beregning av hash-verdi.

Slik søker du i en hash-tabell?

Beregne hash-verdi for nøkkelen og se i den tilhørende indeksen.

True or False: Hash-kollisjoner kan unngås helt.

False. Hash-kollisjoner kan oppstå når to nøkler gir samme hash-verdi.

Forklar sletting i en hash-tabell.

Fjerne en verdi basert på nøkkel. Kan kreve håndtering av kollisjoner.

Hva er en hash-funksjon?

En funksjon som mappe nøkler til indekser. Skal være rask og redusere kollisjoner.

Fyll inn det tomme feltet: Hash-tabeller bruker ofte ____ for å håndtere kollisjoner.

kjedet adressering eller åpen adressering.

Sammenlign søking i hash-tabell og binær søk.

Hash-tabell: O(1) gjennomsnittlig tid. Binær søk: O(log n), men krever sorterte data.

Hvilken effekt har kollisjoner på ytelsen?

Reduserer effektiviteten av innsetting og søk, kan føre til O(n) i verste fall.

Eksempel på innsetting.

Innsett nøkkel 'A' med verdi 1. Hash-funksjon gir indeks 5. Lagre 1 på indeks 5.

Hva skjer ved sletting av en verdi?

Verdien fjernes. Indeks kan bli tom eller markeres som ledig avhengig av metode.

True or False: Hash-tabeller er alltid den beste datastrukturen.

False. Valg av datastruktur avhenger av brukstilfellet og behov for sortering.

Hva er åpen adressering?

En metode for håndtering av kollisjoner. Søker neste ledige plass innen tabellen.

Beskriv lastfaktor i hash-tabeller.

Forholdet mellom antall elementer og tabellens størrelse. Høy lastfaktor kan føre til flere kollisjoner.

Når bør du rehashing?

Når lastfaktoren overskrider en viss grense, vanligvis 0.7 eller 0.75.

Forklar hvorfor hash-tabeller er effektive.

Rask tilgang til data via hash-verdi. Gjennomsnittlig tid for innsetting og søk er O(1).

Hva er kjedet adressering?

En metode for å håndtere kollisjoner ved å lagre flere verdier i en liste ved samme indeks.

Spørsmål i dette studiesettet(32)

1. Hva beskriver best en hash-tabell?

A.En datastruktur som bruker nøkler for å lagre verdier.
B.En lineær datastruktur for sekvensiell lagring.
C.En type sortert liste for datatilgang.
D.En struktur for å lagre grafdata.

2. Hva er den primære hensikten med en hash-funksjon?

A.Å mappe nøkler til indekser
B.Å sortere data
C.Å kryptere data
D.Å lagre data på disk

3. Hva er den gjennomsnittlige tidskompleksiteten for søk i en hash-tabell?

A.O(1)
B.O(n)
C.O(log n)
D.O(n^2)

4. Når oppstår en hash-kollisjon?

A.Når to nøkler får samme hash-verdi
B.Når tabellen er full
C.Når man prøver å slette en verdi
D.Når man utfører en søkefunksjon

5. Sann eller usann: Hash-funksjoner kan føre til kollisjoner.

A.Sann
B.Usann
C.Bare i små tabeller
D.Bare i store tabeller

6. Hva skjer med ytelsen dersom lastfaktoren i en hash-tabell øker?

A.Den blir mer effektiv
B.Effektiviteten avtar
C.Den forblir uendret
D.Den kan ikke brukes lenger

7. Hva skjer under en kollisjon i en hash-tabell?

A.To nøkler får samme indeks.
B.En nøkkel blir slettet.
C.Tabellen blir automatisk utvidet.
D.Ingen data kan legges til.

8. Hvilken av følgende metoder brukes for å håndtere kollisjoner?

A.Kjedet adressering
B.Filtrering
C.Sortering
D.Kryptering

9. Hva er en nøkkel i en hash-tabell?

A.En unik identifikator for en verdi.
B.En tilfeldig verdi som brukes for lagring.
C.En indeks i en array.
D.En metode for å slette data.

10. Hva er O(1) i sammenheng med hash-tabeller?

A.Tid for søk og innsetting
B.Antall nøkler i tabellen
C.Plasseringen av den første verdien
D.Kostnad for minne

11. Hva er belastningsfaktoren i en hash-tabell?

A.Forholdet mellom antall nøkler og tabellstørrelsen.
B.Antall kollisjoner i tabellen.
C.Antall lagrede verdier i tabellen.
D.Indeksen til den første verdien.

12. Hvilket alternativ beskriver åpen adressering?

A.En metode for å lagre flere verdier ved samme indeks
B.En metode for å finne neste ledige plass
C.En metode for å kryptere data
D.En metode for å sortere data

13. Hva er chaining i konteksten av hash-tabeller?

A.En metode for å lagre flere elementer på en indeks.
B.En algoritme for å sortere nøkler.
C.En måte å konvertere nøkler til verdier.
D.Et alternativ til array-struktur.

14. Når bør du vurdere å rehashing en hash-tabell?

A.Når lastfaktoren er for høy
B.Når tabellen er tom
C.Når du utfører slettinger
D.Når alle verdier er unike

15. Hva beskriver åpen adressering?

A.En metode for å finne neste ledige plass ved kollisjon.
B.En prosess for å fjerne elementer fra tabellen.
C.En type hash-funksjon.
D.En algoritme for å sortere data.

16. Hvilken av følgende er IKKE en fordel med hash-tabeller?

A.Rask datatilgang
B.Effektiv minnebruk
C.Enkel implementering
D.Rask innsetting av sorterte data

17. Hva er en dårlig hash-funksjon sannsynligvis å forårsake?

A.Mange kollisjoner.
B.Raskere datatilgang.
C.Bedre dynamisk minnebruk.
D.Færre lagrede verdier.

18. Hva er den typiske tidskompleksiteten for søk i en hash-tabell?

A.O(n)
B.O(log n)
C.O(1)
D.O(n log n)

19. Når er hash-tabeller ikke den beste løsningen?

A.Når datamengden er liten.
B.Når rekkefølge er viktig.
C.Når data må sorteres.
D.Alle de ovenfor.

20. Hvordan kan du håndtere kollisjoner ved hjelp av kjedet adressering?

A.Ved å bruke en liste for å lagre flere elementer
B.Ved å fjerne et element
C.Ved å sortere listen
D.Ved å bruke en annen hash-funksjon

21. Hva er en hash-funksjon?

A.En algoritme som konverterer nøkler til indekser.
B.En metode for å lagre verdier.
C.En funksjon for å slette data.
D.En type database.

22. Hva menes med en høy lastfaktor?

A.Mange elementer i forhold til tabellens størrelse
B.Lave kollisjoner
C.Mange ledige indekser
D.Korte søketider

23. Hvordan påvirker økning av tabellstørrelsen ytelsen?

A.Reduserer antall kollisjoner.
B.Øker antall nøkler.
C.Forårsaker flere kollisjoner.
D.Har ingen effekt.

24. Hva skjer når du prøver å sette inn en eksisterende nøkkel i en hash-tabell?

A.Verdien oppdateres
B.En ny verdi legges til
C.Ingenting skjer
D.En feil oppstår

25. Hvilken av følgende er ikke en fordel med hash-tabeller?

A.Rask tilgang til data.
B.Dynamisk minnebruk.
C.Skalering til store datamengder.
D.Naturlig sortering av data.

26. Hva er den beste strategien for å unngå kollisjoner?

A.Bruke en god hash-funksjon
B.Bruke større tabeller
C.Redusere antall nøkler
D.Sortere data før innsetting

27. Hvilket av følgende beskriver best et nøkkel-verdi-par?

A.En unik identifikator og dens tilknyttede data.
B.En liste med elementer.
C.En statistisk analyse.
D.En metode for søk.

28. Hvorfor er hash-tabeller ikke alltid den beste datastrukturen?

A.De krever for mye minne
B.De er alltid ineffektive
C.De kan ikke håndtere sortering
D.De er vanskelige å implementere

29. Hva er hovedprinsippet bak hash-tabeller?

A.Bruke en hash-funksjon for rask datatilgang.
B.Lagre data i en sekvensiell liste.
C.Sortere data før lagring.
D.Bruke statisk minne.

30. Hvordan beregner man en hash-verdi?

A.Ved å bruke en spesifikk formel for hver nøkkel
B.Ved å sortere nøklene
C.Ved å telle antall nøkler
D.Ved å kryptere nøklene

31. Hvilket av følgende scenarier er et eksempel på når man bør bruke en hash-tabell?

A.Når man trenger rask tilgang til registrerte brukernavn og passord.
B.Når man ofte trenger å sortere data.
C.Når man har et lite antall elementer som ikke endres.
D.Når man ønsker å lagre data i rekkefølge.

32. Hva skjer ved innsetting av en verdi i en hash-tabell som allerede har en kollisjon?

A.Verdi lagres i en liste ved den samme indeksen.
B.Verdi overskriver den eksisterende verdien.
C.Innsetting mislykkes og stopper prosessen.
D.Verdi lagres på neste ledige indeks i tabellen.

Relaterte studiesett

Lag ditt eget studiesett

Last opp en PDF, lim inn notatene dine, eller beskriv et tema – AI genererer flashkort, quizer og mer på sekunder.