Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Что такое бинарное дерево и где оно используется?

Сообщения:  [1-5] 

 
 автор: KEPZ   (22.06.2007 в 15:47)   письмо автору
 
   для: cheops   (22.06.2007 в 14:56)
 

Большое спасибо за разъяснения! :)

   
 
 автор: cheops   (22.06.2007 в 14:56)   письмо автору
 
   для: KEPZ   (22.06.2007 в 14:12)
 

>А реально работающий пример для наглядности у вас не найдётся?
Индексы в СУБД MySQL. Дело в том, что на PHP такие конструкции редко применяются - чаще бинарные деревья используются там, где имеются указатели и ссылки (C, C++).

>И почему именно справа больше, а слева меньше? Это особое правило?
Нет не обязательно и критерий сортировки в бинарном дереве может быть не обязательно больше или меньше - здесь числа и отношение больше и равно используется для наглядности. Суть любого бинарного дерева в том, что поиск по нему осущетвляется быстрее, чем в последовательной коллекции.

   
 
 автор: KEPZ   (22.06.2007 в 14:12)   письмо автору
 
   для: cheops   (22.06.2007 в 11:54)
 

Благодарю, уважаемый! А реально работающий пример для наглядности у вас не найдётся?
И почему именно справа больше, а слева меньше? Это особое правило?

   
 
 автор: cheops   (22.06.2007 в 11:54)   письмо автору
15.6 Кб
 
   для: KEPZ   (21.06.2007 в 20:59)
 

Бинарные деревья позволяют легко искать данные - в отличие от массивов и других структур - элементы в них, зачастую, автоматически отсортированы. Т.е. добавляете новый элемент, а коллекция всё равно автоматически отсортированной остаётся (сравните с массивами, где нужно усилия прикладывать для сортировки - тут на это не тратится вообще никаких усилий).

Во вложении представлено бинарное дерево, которое хранит значения от 1 до 13. При этом слева от любого узла значения меньше, чем справа. Возьмите любое число и справа от него во всём дереве будут меньшие значения, а слева большие. Поэтому для поиска элемента со значением 11 не нужно перебирать все элементы коллекции (а 11 может оказаться в последнем элементе и придётся просканировать всё) - достаточно идти с вершины коллекции (8) сравнивая искомое значение с поподающими по дороге и уже на втором шаге мы достигнем искомого узла.

PS Именно так устроены индексы у баз данных (а зачастую и сами данные там могут строиться).

   
 
 автор: KEPZ   (21.06.2007 в 20:59)   письмо автору
 
 

хотел бы узнать... на человеческом языке! =)

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования