Optimaal op de schijf datastructuur voor het zoeken van een bestand?

stemmen
2

Ik heb een paar uur het lezen van berichten die waren gerelateerd aan de vraag in een poging om te proberen en komen met een oplossing besteed, maar ik was niet echt succesvol in het bedenken van een.

Dus hier gaat: Ik werd eens gevraagd in een interview waarin datastructuur die ik zou gebruiken om te zoeken een als een bepaald woord bestond in een bestand. Het bestand is ook zogenaamd groot genoeg om niet in staat zijn om te passen in het geheugen en de interviewer was echt op zoek naar een on-disk oplossing.

Is de B-Boom een ​​on-disk datastructuur?

Een Binary Search Tree is een in-memory data structuur is het niet?

De vraag is gesteld op 22/02/2011 om 22:55
bron van user
In andere talen...                            


3 antwoorden

stemmen
1

Beide zijn slechts data-structuren en kan zowel on-schijf of in het geheugen. Het hangt af van hoe u ervoor kiest om ze te gebruiken.

btw, B-Bomen zijn ingegeven door de noodzaak om op de schijf structuren. Binaire zoekboom zijn slechts een speciaal geval van B-bomen, op een bepaalde manier.

antwoordde op 22/02/2011 om 23:01
bron van user

stemmen
2

U wilt een datastructuur die het ene knooppunt naar een pagina schijfruimte kaarten gebruiken. Dit zal de schijf activiteit te minimaliseren.

Omdat een B-Tree wordt vaak gebruikt voor dit. Zie http://en.wikipedia.org/wiki/B-tree , in het bijzonder het hoofdstuk "Tijd om een gesorteerde bestand te zoeken".

antwoordde op 22/02/2011 om 23:01
bron van user

stemmen
4

Er zijn eigenlijk twee verschillende mogelijke vragen hier:

  1. Gegeven een enorme file, en een woord, hoe ga je controleren of het woord in het bestand bestaat?

  2. Gegeven een enorme file, hoe doe je een index te bouwen, zodat u efficiënt kunt controleren of een willekeurig woord in het bestand bestaat?

Het eerste probleem is efficiënt opgelost met Boyer-Moore en een lineaire zoektocht door het bestand. Als je maar één keer zoekt, het opbouwen van een index is een complete verspilling van tijd.

Met betrekking tot het tweede probleem, het klinkt als de interviewer is echt te duwen B-Bomen.

antwoordde op 22/02/2011 om 23:03
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more