Wiem, że jest ładowanie zbiorcze w drzewie b +. Chciałem tylko wiedzieć, czy istnieje algorytm ładowania zbiorczego w B-Tree. Na przykład, podając tablicę danych, jaki jest najlepszy sposób tworzenia B-Tree?Czy istnieje algorytm ładowania zbiorczego w drzewie B?
Odpowiedz
Właściwie Odpowiedź brzmi: tak.
Główna różnica między znakami B + i zwykłymi drzewami B polega na tym, że wartości są faktycznie zapisywane w liściach dla pierwszych, podczas gdy w późniejszych wartościach są wartości w każdym węźle. Stąd też tony B + umożliwiają przechowywanie danych w niemal ciągły sposób, przy czym każdy liść zawiera ciągły kawałek całości posortowanych danych. Nie może to być prawda w przypadku drzewek B: wewnętrzny węzeł będzie zawierał kilka elementów, ale nie będą one przylegać do siebie. cały posortowany zbiór danych.
Ta właściwość ma podstawowe znaczenie przy ładowaniu zbiorczym: ten proces działa na już posortowanym zbiorze danych, wycinając go w tablice, które utworzą liście z drzewa B +. Tak więc dla drzewa B wygląda na to, że nie może działać.
Jeśli możemy posortować dane w sposób, który grupuje elementy wewnętrznych węzłów, problem zostanie rozwiązany. Aby to zrobić, trzeba z góry wiedzieć, jak elementy zostaną pogrupowane. Okazuje się to możliwe.
Zadzwońmy pod numer o
(kolejność) minimalnej liczby dzieci w węźle (zgodnej z pierwotną definicją kolejności drzewa B). Uważamy, że węzeł główny znajduje się na najwyższym stopniu drzewa, a liście są najniższe (etap 0). Dla dobrze zbalansowanego drzewa wszystkie liście będą rzeczywiście na tym samym etapie.
Etap k elementów grup drzew rozmieszczonych co najmniej na elementach k-1 w co najmniej pozycji o
. Po początkowym sortowaniu, musimy wyodrębnić elementy z posortowanej tablicy, która stanowi etap 0, i pogrupować je w inną tablicę, aby zbudować stage 1, a następnie zrobić to ponownie z tą tablicą do nowej tablicy dla etapu 2 i powtórzyć proces dopóki nie będzie mniej niżelementów w najnowszej tablicy, która będzie podstawowym etapem. Od tego momentu możliwe jest zbudowanie drzewa bezpośrednio od scenografii:
- podzielonym każdy etap tablic
o
elementów - tablice indeksu build połączyć węzły do podwęzłów
- build każdego węzła jako para odpowiednich tablic wartości tablicy * tablica wartości:
Wynikowe drzewo niekoniecznie będzie dobrze zrównoważone. To zależy od liczby wpisów w zbiorze danych i od o
. Powinno być możliwe dostrojenie interwału używanego do budowy etapów, aby mieć lepiej rozłożone drzewo.
W sumie praca potrzebna do masowego załadowania drzewa B jest bardziej żmudna niż w przypadku B +, ale jest to możliwe.
- 1. Implementacja drzewa B w drzewie wyszukiwania
- 2. Czy istnieje struktura drzewa lub algorytm do pomieszania wokół poziomów w drzewie?
- 3. C/C++: Jak przechowywać dane w pliku w drzewie B
- 4. Czy istnieje algorytm "upraszczający" wykres zależności?
- 5. Algorytm wyszukiwania zbędnych krawędzi na wykresie lub drzewie
- 6. Czy istnieje sposób użycia `dynamic` w drzewie wyrażeń lambda?
- 7. Czy istnieje algorytm elipsy punktu środkowego?
- 8. Czy istnieje szybszy sposób ładowania mysqldumps?
- 9. Czy istnieje algorytm określający, czy a * b mieści się w możliwych wartościach liczby całkowitej? (bez rzutowania na szerszy typ)
- 10. Jak liczyć dzieci w drzewie
- 11. Narzędzie wiersza polecenia obciążenia zbiorczego MySql
- 12. Algorytm sprawdzania, czy zbiór A jest podzbiorem zbioru B w czasie szybszym niż czas liniowy
- 13. Czy istnieje sposób ustawienia priorytetu ładowania obrazów w witrynie?
- 14. Czy istnieje sposób dynamicznego ładowania pliku właściwości w NAnt?
- 15. Czy istnieje sposób na przyspieszenie ładowania biblioteki w R?
- 16. Czy istnieje algorytm ważonego pobierania próbek w zbiorniku
- 17. Maksymalne niepokrywające się interwały w drzewie interwałowym
- 18. Łatwy sposób na znalezienie Subtree w drzewie
- 19. czy istnieje odpowiednik javascripts a = b && b.c || d
- 20. NerdTree - Ujawnij plik w drzewie
- 21. Czy zawsze mam `(a/b * b) + a% b == a`, gdy b nie jest zerem?
- 22. git checkout -b, oddział już istnieje
- 23. Czy istnieje jakiś kod lub algorytm rozpoznawania podpisu?
- 24. Czy istnieje odpowiedni algorytm do wykrywania koloru tła figury?
- 25. Analiza liczby zmiennoprzecinkowej: Czy istnieje algorytm Catch All?
- 26. Czy istnieje algorytm rozwiązywania takiego problemu z rekonstrukcją geometryczną projekcji?
- 27. Czy istnieje algorytm, który tworzy rozkład uniwersytecki na cały semestr?
- 28. Czy istnieje sposób na przyspieszenie czasu ładowania serwera Selenium?
- 29. Czy istnieje algorytm Objective-C, jak "transformacja" C++ STL?
- 30. Czy istnieje jakiś sposób wstępnego ładowania materiałów rysunkowych z zasobów?