Описание тега b-tree

B-деревья - это тип самобалансирующегося дерева поиска, в котором каждый узел может содержать несколько ключей, а все листовые узлы находятся на одинаковом расстоянии от корня.
5 ответов

Почему важно удалять файлы, чтобы быстрее их удалять?

Некоторое время назад я узнал, что rsync удаляет файлы гораздо быстрее, чем многие другие инструменты. Несколько дней назад я наткнулся на этот замечательный ответ на Serverfault, который объясняет, почему rsync так хорош в удалении файлов. Цитата и…
30 июл '13 в 19:13
0 ответов

Сплит целое B-дерево

Кто-нибудь знает, как разделить целое B-дерево (не разделить узел) на два поддерева как можно дешевле? В настоящее время я делаю это, разделяя все элементы, которые отсортированы в дереве, на 2 массива, а затем перестраиваю 2 поддерева из этого, но,…
05 сен '16 в 02:10
1 ответ

Рекурсивные типы данных в Promela

Я пытаюсь создать B-Tree в Promela, чтобы я мог доказать что-то об этом, однако кажется, что Promela не поддерживает рекурсивные типы данных. Это не работает: #define n 2 typedef BTreeNode { int keys[2*n-1]; BTreeNode children[2*n]; int c; }; Как я …
1 ответ

Разреженный / Плотный индекс и как он работает?

Я могу понять, как работает индекс B*Tree, выполнив поиск по дереву. Но я не могу понять, как работает разреженный индекс или плотный индекс. Например, если для плотного индекса необходимо, чтобы каждое значение отображалось с помощью ключа. Какая п…
06 июн '17 в 23:44
1 ответ

Удаление из правила B-дерева

Ну, я готовлюсь к экзамену и меня немного смущает следующее. На следующем рисунке показано B-дерево с t=3, поэтому каждый узел может иметь не более 2t-1 ключей и не менее t-1 ключей. Меня просят удалить ключ =3. Я не могу понять, почему я должен при…
3 ответа

Какие базы данных имеют оптимизацию для функций, чтобы использовать индексы?

Предположим, у меня есть столбец с плавающей точкой, индекс b-дерева и миллион строк: CREATE TABLE test ( val FLOAT, KEY (val) ); INSERT INTO test VALUES (random(-1000, 1000)), (random(-1000, 1000)), ... (1 млн рядов) Теперь, если я хочу сделать зап…
25 мар '12 в 09:49
4 ответа

Эффективный запрос дерева B+ с многомерными данными

У меня есть коллекция кортежей (x,y) 64-битных целых чисел, которые составляют мой набор данных. У меня есть, скажем, триллионы этих кортежей; невозможно сохранить набор данных в памяти на любой машине на земле. Однако вполне разумно хранить их на д…
1 ответ

Использование b деревьев в базе данных

Я должен реализовать базу данных, используя b деревьев для школьного проекта. база данных предназначена для хранения аудиофайлов (песен), и можно выполнить ряд различных запросов, например, запросить все песни данного исполнителя или определенного а…
23 фев '13 в 19:01
1 ответ

Как переписать "node->left->key", заменив -> на "(*)." в С ++?

Я новичок в символе "->", поэтому вместо этого я заменяю его на (*)., Однако, когда я наткнулся на строку кода ниже, я попытался заменить ее, и она не сработала. Что я делаю не так и есть ли способ переписать это? Я продолжаю получать сообщение об о…
17 янв '19 в 02:56
1 ответ

Максимальное количество ключей в B-дереве

Я использую следующее определение B-дерева (согласно википедии: https://en.wikipedia.org/wiki/B-tree): Каждый узел содержит от d до 2d ключей. Я сейчас ищу формулу, как рассчитать максимальное количество ключей в B-Tree с высотой = h. Как я могу это…
30 июн '18 в 08:07
1 ответ

B-Tree теряет данные на вставке

Я пытаюсь реализовать b-дерево. При вставке 6-го элемента я теряю все, кроме вновь созданных 2-х узлов, что приводит к разбиению листа и их среднего значения. Вот мой код: #include <stdio.h> #include <stdlib.h> struct node { int data; in…
08 июн '13 в 21:51
1 ответ

Строительство B+ деревьев

Предположим, меня попросили построить дерево B+ из: i) n = x. ii) order = x. iii) degree = x. iv) p = x. Что должно быть нет. ключей и указателей, которые может содержать каждый узел, в каждом из вышеперечисленных случаев?
01 май '12 в 06:24
0 ответов

Вставка в B-дерево

Каждый. У меня возникли небольшие проблемы с реализацией функции вставки BTree в C. Я пытаюсь выполнить упражнение 18-2.1 из книги Кормена и построчно следую алгоритму, содержащемуся в книге, но даже в этом случае я не могу заставить его работать до…
13 май '16 в 01:03
1 ответ

Как найти количество уровней в B-дереве

Возможный дубликат: Ошибка сегментации в реализации btree Как мы можем найти число уровней в B-дереве в следующем коде #include<stdio.h> #include<stdlib.h> #define M 10 struct node { int n; /* n < M No. of keys in node will always les…
06 янв '11 в 10:31
1 ответ

Oracle 10g: почему Oracle выполняет полное сканирование таблицы вместо использования индекса B-дерева с низкой мощностью в этом случае?

Я исследую индексы в Oracle 10g, чтобы ускорить конкретный запрос. Снова и снова я читаю, что индексация столбцов с низким числом элементов (столбцы с очень небольшим количеством уникальных значений, например, столбец пола в таблице сотрудников) оче…
08 фев '13 в 00:19
1 ответ

B-дерево: удалить неконечный узел?

Я изучаю дерево B и в книге они сказали, что: Если ключ k находится в узле x и x является листом, удалите ключ k из x. Если ключ k находится в узле x, а x является внутренним узлом, выполните следующие действия. а. Если дочерний элемент y, который п…
05 июл '16 в 15:04
3 ответа

Структуры данных больше, чем в памяти, и как они обычно обрабатываются

Скажем, у меня есть файловая структура данных, такая как B+ Tree. Насколько я понимаю, данные, как ожидается, будут храниться на диске, но индекс обычно загружается в память. Что если у вас такой большой файл, что даже его индекс не помещается в пам…
18 апр '09 в 21:11
1 ответ

Когда создается btree при добавлении индекса в таблицу MySQL 5.5?

У меня довольно большая таблица в MySQL 5.5, ~200M строк, и я хочу добавить индекс к одному из столбцов в этой таблице (тип btree). Столбец имеет тип integer и содержит большое количество целых чисел. Мой вопрос, когда вычисляется btree? Когда я вып…
16 дек '15 в 09:15
0 ответов

Использование B-Tree для эффективной реализации findrange

Моя задача - эффективно реализовать метод findRange(x,y), который выводит все значения больше x и меньше или равно y. Как я могу сделать это эффективным способом? Как выглядит метод findRange(x,y) в B-Trees? Я не хочу никакого кода, я просто хочу, ч…
16 янв '18 в 16:54
2 ответа

Какой элемент является "средним" в B-дереве четного порядка?

Если у меня есть B-дерево порядка 4 со следующими данными в нем... и мне нужно добавить 2 к дереву; я... добавьте 2 к узлу (сделав его недействительным, поскольку теперь у него 4 ключа), затем разделите узел, взяв значение 2 в качестве среднего знач…
11 апр '15 в 16:30