Jaké jsou výhody T stromů nad B +/- stromy?

hlasů
12

Jsem prozkoumal definice T-stromů a B- / B + stromy. Z dokumentů na webu Chápu, že B-stromy dosahují lepších výsledků v hierarchické paměti, jako jsou pevné disky a cache paměti.

To, co nemohu pochopit, proč T-stromy byly / jsou používány i pro ploché paměti?

Oni jsou inzerovány jako prostor efektivní alternativu k AVL stromy.

V nejhorším případě jsou všechny koncové uzly z T-tree obsahovat pouze jeden prvek a všechny vnitřní uzly obsahují minimální množství povolené, což se blíží úplné. To znamená, že se využívá v průměru pouze polovina přidělené místo. Pokud se nemýlím, je to stejné využití jako nejhorší případ B-stromy, když uzly B-stromu jsou z poloviny plná.

Za předpokladu, že oba stromy uložení klíče lokálně v uzlech, ale ukazatele použití se odkazovat na záznamech, jediný rozdíl je, že B-stromy mají uchovávat ukazatele pro každou z větví. To by obecně způsobí až 50% nad hlavou nebo méně (přes T-stromech), v závislosti na velikosti klíčů. Ve skutečnosti je to blízko k režii se očekává v AVL stromech, za předpokladu, že žádný mateřský ukazovátko, záznamy vložené v uzlech, klíče uložená v záznamech. Je to očekávaný zisk účinnost, která nám zabraňuje použití B-stromy místo?

T-stromy jsou obvykle prováděny na vrcholu AVL stromů. AVL stromy jsou vyrovnanější než B-stromy. Může to být spojen s aplikací T-stromy?

Položena 29/01/2011 v 15:43
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
3

Můžu vám dát osobní příběh, který pokrývá polovinu odpověď, to znamená, že důvod, proč jsem napsal nějaké Pascal kód programovat B + stromy asi před 18 roky.

můj cíl systém byl počítač se dvěma disky, musel jsem k uložení indexu energeticky nezávislé paměti, a chtěl jsem, aby lépe pochopit, co jsem se učil na univerzitě. Byl jsem velmi spokojen s výkonem obchodní balík, pravděpodobně dBASE III, nebo nějaký produkt Fox, nemohu vzpomenout.

v každém případě: Potřeboval jsem tyto operace:

  • vzhlédnout
  • vložení
  • vymazání
  • dalším bodem
  • předchozí položka

  • Maximální velikost indexu nebyl znám

  • takže data musely být umístěny na disku
  • každý přístup k podpoře měla vysoké náklady
  • čte celý blok stojí stejně jako čtení jeden bajt

B + -trees také, že malé pomalý PC opravdu létat přes data!

Křídla měl dva další ukazatele tak, aby tvořily dvojnásob propojeného seznamu, sekvenční vyhledávání.

Odpovězeno 11/02/2011 v 23:49
zdroj uživatelem

hlasů
2

Ve skutečnosti Rozdíl spočívá v systému, který používáte. Stejně jako můj lektor na univerzitě to komentoval: Je-li váš problém spočívá v nedostatku paměti nebo nedostatku hdd bude určit, který strom a ve kterém realizace budete používat. S největší pravděpodobností to bude B + strom.

Vzhledem k tomu, tam jsou stovky implementací, například s 2direction frontě a jeden směrovými fronty, kde je třeba, aby smyčka myšlenkových prvků, a také existuje více způsobů, jak uložit index a vyhledávání bude určovat skutečné nevýhody a min jakékoliv implementace.

Odpovězeno 25/02/2011 v 09:02
zdroj uživatelem

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