Мне интересно, как алгоритм Tarjan's Down-Down red black tree сопоставляет другие алгоритмы красного черного дерева (например, Роберт Седжвик). Кто-нибудь сравнивал результаты различных алгоритмов «сверху вниз» и «снизу вверх»? Пожалуйста, дайте мне знать, так как это поможет решить, какой алгоритм мне нужен в качестве базового алгоритма, как я планирую сделать его одновременным позже. (Я бы хотел, чтобы сравнение не только между сверху вниз и снизу вверх, но также между различными алгоритмами этих исследователей!)Тарьяна сверху вниз красная черная эффективность дерева
ответ
Из того, что я мог найти, в этой области мало работы. Существуют некоторые тесты производительности, которые выполнялись между различными сбалансированными BST (AVL vs RB vs splay), но, насколько мне известно, те, которые запускались для вариантов красно-черных деревьев, являются анекдотическими: эталон одного варианта дерева RB против «стандартного» реализации в одном конкретном случае.
Итак, если вы решили внедрить красно-черное дерево, вы должны выбрать несколько вариантов, язык и сравнить их в соответствии с вашими вариантами использования. Вы можете найти некоторые реализации с открытым исходным кодом различных видов красно-черных деревьев по всей сети, вот несколько основных вкусов, что я в курсе:
- Left-Leaning RB Tree - Java - GPLv3 - (Седжвик/Wayne)
- рекурсивный BU вставка/удаление, итерационная TD вставка/удаление - C - MIT-как - (eternallyconfuzzled)
- рекурсивный BU вставки, рекурсивный TD удалить - Java - MIT - (me)
Те реализации являются эффективно, потому что все они имеют общая точка не указана родительским указателем. Тем не менее, вы должны проверить их корректно, и при необходимости оптимизировать их.
- 1. красная черная вставка дерева вставка - что такое страж?
- 2. Поиск и замена дерева сверху вниз
- 3. Сложность времени makeEmpty() дерева splay сверху вниз
- 4. Вид сверху сверху вниз
- 5. Пролистайте вниз страницы сверху вниз
- 6. Рекурсивное пересечение дерева в C# сверху вниз по строке
- 7. javascript профилирование: способ отображения сверху вниз дерева для отдельной функции?
- 8. Эффективность вращения дерева AVL
- 9. Черная полоса сверху, несмотря на statusBarHidden
- 10. Анимация (сверху вниз и сверху вниз) не гладкая
- 11. Стратегия встраивания HotSpot JIT: сверху вниз или сверху вниз
- 12. Выполнить наложение сверху вниз, а не сверху вниз
- 13. Как узнать алгоритм Тарьяна?
- 14. Переместить TextView сверху вниз
- 15. рукописный анализатор сверху вниз
- 16. Сверху вниз, нерекурсивное слияние
- 17. Заполните DataGrid сверху вниз
- 18. Сценарист Камера сверху вниз
- 19. Формат Postscript сверху вниз
- 20. сверху вниз слайдер
- 21. Сверху вниз Floyd-Warshall
- 22. Гистограмма сверху вниз
- 23. jQuery скольжение сверху вниз
- 24. сверху вниз диапазоны сливаются?
- 25. летающий текст сверху вниз
- 26. Продолжайте смотреть сверху вниз
- 27. Плавающие divs сверху вниз
- 28. «Обсуждение дизайна сверху вниз»
- 29. анимировать - сверху вниз, а не сверху
- 30. .slideToggle сверху вниз, а не сверху
Спасибо! Можете ли вы объяснить, почему родительские указатели будут проблемой? –
Если вам нужно быть максимально эффективным по площади, то это проблема. Если вы ищете эффективность, то вы должны сравнить реализации, на которые я указал вам, с помощью некоторых указателей-указателей. Нет проблем с родительскими указателями. –
Понял! Я думаю, что я по-прежнему буду с родительскими указателями, потому что это упростит реализацию в противном случае, я могу в конечном итоге сделать ошибки при реализации рекурсии и действительно испортить программу! –