Structure optimale des données sur disque pour la recherche d'un fichier?

voix
2

J'ai passé quelques heures à lire les messages qui ont été liés à la question dans le but d'essayer de trouver une solution, mais je n'étais pas vraiment réussi à venir avec un.

Alors, voici: On m'a déjà demandé dans une interview que la structure de données j'utiliser pour rechercher un si un mot existe dans un fichier. Le fichier est aussi assez grand pour soi-disant ne pas être en mesure de tenir dans la mémoire et l'intervieweur cherchait vraiment une solution sur disque.

Le B-Tree une structure de données sur disque?

Binary Search Tree est une structure de données en mémoire non?

Créé 22/02/2011 à 22:55
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
1

Les deux ne sont que des structures de données et peuvent être à la fois sur disque ou en mémoire. Cela dépend de la façon dont vous choisissez de les utiliser.

BTW, B-arbres ont été motivés par un besoin d'avoir des structures sur disque. arbres binaires de recherche sont un cas particulier de B-arbres, d'une façon.

Créé 22/02/2011 à 23:01
source utilisateur

voix
2

Vous souhaitez utiliser une structure de données qui mappe un nœud à une page d'espace disque. Cela réduira l'activité du disque.

Parce que est souvent utilisé B-Tree pour cela. Voir http://en.wikipedia.org/wiki/B-tree , en particulier la section « Temps de recherche un fichier sorted ».

Créé 22/02/2011 à 23:01
source utilisateur

voix
4

Il y a vraiment deux questions différentes possibles ici:

  1. Compte tenu d'un fichier massif, et un mot, comment voulez-vous vérifier si le mot existe dans le fichier?

  2. Compte tenu d'un fichier massif, comment voulez-vous construire un indice afin que vous puissiez efficacement vérifier si un mot arbitraire existe dans le fichier?

Le premier problème est résolu efficacement avec Boyer-Moore et une recherche linéaire à travers le fichier. Si vous êtes seulement la recherche une fois, la construction d'un indice est une perte de temps.

En ce qui concerne le deuxième problème, il semble que l'intervieweur est vraiment pousser B-arbres.

Créé 22/02/2011 à 23:03
source utilisateur

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