Optimální on-disk datové struktury pro vyhledávání souborů?

hlasů
2

Strávil jsem několik hodin čtení příspěvků, které byly v souvislosti s otázkou, ve snaze, aby se pokusila přijít s řešením, ale nebyl jsem opravdu úspěšný v přijít s jedním.

Tak tady je: Jednou jsem byl požádán v rozhovoru, který datovou strukturu bych využít pro vyhledání, zda konkrétní slovo existuje v souboru. Soubor je také údajně dostatečně velká, aby nebyl schopen, aby se vešly do paměti a tazatel byl opravdu hledá řešení na disku.

Je B-Tree on-disk datové struktury?

Binární vyhledávací strom je struktura dat v paměti nebo ne?

Položena 22/02/2011 v 22:55
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
1

Oba jsou jen data-struktury a mohou být jak na disku nebo v paměti. Záleží na tom, jak se rozhodnete používat.

btw, B-stromy byly motivovány potřebou mít struktur na disku. Binární vyhledávací stromy jsou prostě zvláštní případ B-stromy, v jednom směru.

Odpovězeno 22/02/2011 v 23:01
zdroj uživatelem

hlasů
2

Chcete-li použít datovou strukturu, která mapuje jeden uzel pro jednu stránku místa na disku. Tím se minimalizuje aktivitu disku.

Vzhledem k tomu, B-Tree je často používán pro toto. Viz http://en.wikipedia.org/wiki/B-tree , konkrétně v části „Je čas hledat seřazený soubor“.

Odpovězeno 22/02/2011 v 23:01
zdroj uživatelem

hlasů
4

Tam jsou opravdu dvě různé případné dotazy zde:

  1. Vzhledem k tomu, masivní soubor, a jediné slovo, jak si zkontrolovat, zda existuje slovo v souboru?

  2. Vzhledem k tomu, masivní soubor, jak si vytvořit index, takže můžete efektivně zkontrolovat, zda existuje libovolné slovo v souboru?

Prvním problémem je účinně řešit pomocí Boyer-Moore a lineární prohledávání souboru. Pokud jste jen hledáte jednou, budování indexu je úplná ztráta času.

Pokud jde o druhý problém, to zní jako tazatel je opravdu tlačí B-stromy.

Odpovězeno 22/02/2011 v 23:03
zdroj uživatelem

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