Допустим, что мы имеем дело с ключами 1-15. Чтобы получить наихудшую производительность обычного BST, вы должны вставлять ключи в порядке возрастания или убывания следующим образом:Порядок вставки для наихудшего случая черная высота красного черного дерева
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Тогда BST по существу станет связанным списком.
Для лучшего случая BST вы должны вставлять ключи в следующем порядке, они устроены таким образом, что следующая введенная клавиша составляет половину от общего диапазона, который должен быть вставлен, поэтому первый из них равен 15/2 = 8, а затем 8/2 = 4 и т.д. ...
8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15
Тогда BST будет хорошо сбалансированным деревом с оптимальной высотой 3.
Самый лучший вариант для красного черного дерева также можно построить с лучшим корпусом из BST. Но как мы строим худший случай для красного черного дерева? Это то же самое, что в худшем случае для BST? Существует ли конкретный шаблон, который даст худший случай?
Эй, это отличный вопрос, я думаю. И мне особенно интересно узнать ответ. Возможно, здесь могут помочь люди в cstheory stackexchange. Так что, если вы можете опубликовать его там? – sukunrt
Я столкнулся с этой статьей: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1458 – sukunrt
Не могли бы вы пояснить «половину всего диапазона, который нужно вставить»? Просто любопытно, и не мог понять это – keyser