Structura optimă pe disc de date pentru căutarea unui fișier?

voturi
2

Am petrecut câteva ore de lectură posturi care au fost legate de întrebarea în încercarea de a încerca și să vină cu o soluție, dar nu am fost cu adevărat succes în a veni cu unul.

Deci, aici merge: Am fost întrebat odată într-un interviu pe care structura de date mi-ar folosi pentru a căuta o în cazul în care un anumit cuvânt a existat într-un fișier. Fișierul este, de asemenea, se presupune că nu suficient de mare pentru a fi în măsură să se potrivească în memorie și intervievatorul a fost într-adevăr în căutarea pentru o soluție pe disc.

Este B-Tree o structură de date pe disc?

Un binar de căutare arbore este o structură de date în memorie nu-i așa?

Întrebat 22/02/2011 la 22:55
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
1

Ambele sunt doar date-structuri și pot fi atât pe disc sau în memorie. Depinde de modul în care puteți să le folosiți.

BTW, B-Copacii au fost motivate de necesitatea de a avea structuri de pe disc. copaci binar de căutare sunt doar un caz special de B-arbori, într-un fel.

Publicat 22/02/2011 la 23:01
sursa de către utilizator

voturi
2

Doriți să utilizați o structură de date care mapează un nod la o pagină de spațiu pe disc. Acest lucru va minimiza activitate pe disc.

Deoarece B-Tree este adesea folosit pentru acest lucru. A se vedea http://en.wikipedia.org/wiki/B-tree , în special secțiunea „timp pentru a căuta un fișier sortat“.

Publicat 22/02/2011 la 23:01
sursa de către utilizator

voturi
4

Există într-adevăr două întrebări diferite posibile aici:

  1. Având în vedere un fișier masiv, și un cuvânt, cum să verificați dacă cuvântul există în dosar?

  2. Având în vedere un fișier masiv, cum ai construi un index, astfel încât să puteți verifica în mod eficient în cazul în care există un cuvânt arbitrar în fișierul?

Prima problemă este rezolvată în mod eficient cu Boyer-Moore și o căutare liniară prin fișierul. Dacă sunteți în căutarea doar o dată, construirea unui indice este o pierdere de timp.

În ceea ce privește a doua problemă, se pare ca intervievatorul este cu adevărat împingând B-copaci.

Publicat 22/02/2011 la 23:03
sursa de către utilizator

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