Βέλτιστη στο δίσκο δομή δεδομένων για την αναζήτηση ενός αρχείου;

ψήφοι
2

Έχω περάσει μερικές ώρες την ανάγνωση των μηνυμάτων που σχετίζονται με το θέμα, σε μια προσπάθεια να προσπαθήσουμε και να καταλήξουμε σε μια λύση, αλλά δεν ήμουν πολύ επιτυχής όσον αφορά έρχονται με ένα.

Έτσι, εδώ πηγαίνει: Ήμουν κάποτε ζήτησε σε συνέντευξή του η οποία δομή δεδομένων θα χρησιμοποιήσετε για να αναζητήσετε το αν υπήρχε μια συγκεκριμένη λέξη σε ένα αρχείο. Το αρχείο είναι επίσης υποτίθεται ότι είναι αρκετά μεγάλο για να μην είναι σε θέση να χωρέσει στη μνήμη και τη συνέντευξη ήταν πραγματικά ψάχνει για μια λύση στο δίσκο.

Είναι το B-Tree μια δομή δεδομένων στο δίσκο;

Μια Binary Search Tree είναι μια δομή δεδομένων στην μνήμη έτσι δεν είναι;

Δημοσιεύθηκε 22/02/2011 στις 22:55
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
1

Και οι δύο είναι απλά στοιχεία-δομές και μπορεί να είναι και στο δίσκο ή στη μνήμη. Εξαρτάται από το πώς θα επιλέξετε να τα χρησιμοποιήσετε.

btw, Β-δέντρα είχαν ως κίνητρο την ανάγκη να υπάρχει στο δίσκο δομές. Δυαδικά δέντρα αναζήτησης είναι απλώς μια ειδική περίπτωση της Β-δέντρα, σε ένα δρόμο.

Απαντήθηκε 22/02/2011 στις 23:01
πηγή χρήστη

ψήφοι
2

Θέλετε να χρησιμοποιήσετε μια δομή δεδομένων που χαρτογραφεί τη σελίδα έναν κόμβο σε έναν χώρο στο δίσκο. Αυτό θα ελαχιστοποιήσει δραστηριότητα του δίσκου.

Επειδή ένα Β-δέντρο χρησιμοποιείται συχνά για το σκοπό αυτό. Δείτε http://en.wikipedia.org/wiki/B-tree , ειδικά το τμήμα «Ώρα να αναζητήσετε μια ταξινομημένη αρχείο».

Απαντήθηκε 22/02/2011 στις 23:01
πηγή χρήστη

ψήφοι
4

Στην πραγματικότητα υπάρχουν δύο διαφορετικές πιθανές ερωτήσεις εδώ:

  1. Λαμβάνοντας υπόψη ένα τεράστιο αρχείο, και μια λέξη, πώς θα ελέγξετε αν υπάρχει η λέξη στο αρχείο;

  2. Λαμβάνοντας υπόψη ένα τεράστιο αρχείο, πώς θα οικοδομήσουμε ένα ευρετήριο, ώστε να μπορείτε να ελέγξετε αποτελεσματικά αν υπάρχει μια αυθαίρετη λέξη στο αρχείο;

Το πρώτο πρόβλημα είναι αποτελεσματικά λυθεί με Boyer-Moore και μια γραμμική αναζήτηση μέσω του αρχείου. Αν ψάχνετε μόνο μία φορά, την οικοδόμηση ενός δείκτη είναι ένα πλήρες χάσιμο χρόνου.

Όσον αφορά το δεύτερο πρόβλημα, ακούγεται σαν ο ερευνητής πιέζει πραγματικά Β-Δέντρα.

Απαντήθηκε 22/02/2011 στις 23:03
πηγή χρήστη

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