- Что делаешь? - Перекрашиваю чёрных детей. - Расист?! - Программист.
@bartbelrigvardo5216 Жыл бұрын
🤣🤣🤣 Это за гранью добра и зла
@abuser-je3gl4vc1c Жыл бұрын
- Что делаешь? - Делаю деда красным и совершаю левый поворот. - Коммунист?! - Программист.
@ЕвгенийМакаров-щ5н8 ай бұрын
@@abuser-je3gl4vc1c open source программист
@xagent Жыл бұрын
Недавно наткнулся на ваш канал. Это просто супер. На фоне всего остального шлака по теме it, который существует на ютубе, ваш канал прям выделяется. Мне очень нравится ваш фундаментальный подход. Не тупо освоить синтаксис какого нибудь языка программирования, а дать именно теоретические основы программной инженерии. Да еще и в интерактивном и наглядном формате, с анимациями, графиками. Желаю развития каналу.
@DemetriuszStrykowski Жыл бұрын
Точно, канал просто супер!!!
@AK-ji3qv17 күн бұрын
читай лучше книги. больше толку будет
@MicP8 Жыл бұрын
7:10 - если при удалении узла, с двумя детьми, мы используем максимальный элемент слева(maxInLeft), то и удалять надо слева : node.left = delete(node.left, maxInLeft.key). На слайдах : node.right = delete(node.right, maxInLeft.key). Аналогичная неточность в коде для AVL Tree
@МатвейФедкович-ш3д11 ай бұрын
Верно. Хорошее замечание
@Andreypochemu8 ай бұрын
а я сижу не понимаю что не так
@Вадим-ш5у8г5 ай бұрын
Мне все равно не понятно, если node.left = delete(node.left, maxInLeft.key), delete(node.left, maxInLeft.key) вернет 6 node.left =4 . получится что четверка замениться на 6 ?
@magomedov77803 ай бұрын
Я тоже это заметил когда переписывал код. и полез в коментарии, чтобы найти того же, кто это заметил
@АлексейПротасов-п6э Жыл бұрын
Вот так если задуматься, какую же титаническую работу автор воплотил, написать грамотно текст, визуализировать все сказанное…лайк!
@frantzfoxengton7394 Жыл бұрын
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
@МихайлоДвалі Жыл бұрын
Ну и єкстримист ты конечно😊
@МихайлоДвалі Жыл бұрын
Кстати, инкапсуляция это сокрытие
@ilya_bondar_ Жыл бұрын
Мозг расплавится понять это с первого раза. Автору респект, что не только вник и разобрался, но и иллюстрировал и разжевал. Но осознать это всё очень сложно. Только базовые идеи
@Денис-ы6ъ5г Жыл бұрын
Недавно сам писал реализацию красно-черного дерева, столько статей пересмотрел и видосов,эх,где ты был пару недель назад( Все очень классно и понятно!
@pashkiewich Жыл бұрын
Как всегда кратко и информативно. Спасибо за пищу для мозга )
@avi-crakhome2524 Жыл бұрын
Деревья придумали для обычных процессоров, которые способны выполнять одно сравнение за одну команду. Ускорители для ИИ работают иначе - там вся память ассоциативная, и поиск заключается в нахождении самого близкого значения от запроса, в идеале равным запросу. Но так как от двоичной логики далеко уйти не получилось - то поиск выполняется параллельным приближением, прямо в памяти. Берётся блок памяти допустим 4к цифр, и каждую цифру сравнивают с запросом, все разом, параллельно. Результатом имеем новый слой данных x>y?x-y:y-x. Если на этом слое где-то получился ноль - поиск заканчивается. Иначе выполняется операция сравнения между двумя соседями, и образуется новый слой - куда помещаются только малые числа. Потом ещё и ещё слои, до самого минимального числа. Адрес минимального числа считается результатом поиска, и он может быть не точным. И ещё пока нижний слой выполняется - верхний может принять новую страницу памяти и новый поиск. Для всего этого требуется огромное количество транзисторов - но зато скорость поиска приближается к реализациям квантовых компов. Которые кстати работают примерно так-же.
@asjvchnvh9313 Жыл бұрын
Интересная инфа, что за тема? Хотел почитать статьи
@MicP8 Жыл бұрын
Отличный разбор! В коде copyTree (8:00)на экране есть ошибка, должно быть, как и сказано в звуковом комментарии: void copyTree(Node node) { If(node==null) return; print(node.value); copyTree(node.left); copyTree(node.right); }
@yuriykachanov2212 Жыл бұрын
In English: pre-order, in-order, post-order
@zadrot64 Жыл бұрын
Сними ролик про B-trees плз) Нормального ролика найти не могу, а они чаще используются для баз данных....
@alekseykhromov259 Жыл бұрын
Какой же годный контент… Большое спасибо!!!
@АртурПоляков-ъ2д Жыл бұрын
Здесь представлен довольно запутанный способ поворота дерева, хотя он эффективен. Есть более простой способ, для начала лучше его освоить. выглядит это примерно так: private Node rotateLeft(Node oldParent) { Node newParent = oldParent.right; Node newParentLeft = newParent.left; newParent.left = oldParent; oldParent.right = newParentLeft; oldParent.computeHeight(); newParent.computeHeight(); return newParent; } Данный метод поворачивает поддерево и возвращает новый корень,. Чтобы его корректно использовать, нужно чтобы методы добавления и удаления возвращали Node, и предрекурсионном методе вызов должен быть таким root = add(key, root);, где root - это корень дерева.
@p.al.trofimov Жыл бұрын
Лучший из всех каналов на рунете по IT тематике. Спасибо за контент, за качественную информацию и высокий уровень подготовки ролика 👍
@viska_tru Жыл бұрын
Сложно, ничего непонятно, но очень интересно
@asunali31316 күн бұрын
зашел сюда именно за таким комментом)
@ron8897 Жыл бұрын
На протяжение всего времени изучения программирования, я уже наверное 10000 раз сказал что я тупой )
@AK-ji3qv17 күн бұрын
во первых это реально очень сложная тема, во вторых объясняет не всегда понятно и ооооочень быстро.
@Dmitrii-Zhinzhilov Жыл бұрын
Alek, благодарю!! 👍 Инфографика великолепна! 🔥
@BigRock379 Жыл бұрын
Алекс, спасибо тебе! Мне безумно заходить этот контент, я под него стараюсь расслабляться и при этом продолжать вникать во все тонкости программирования, с такой визуализацией и музыкальным сопровождением уносит в транс порой..
@Michael-xi1ipАй бұрын
спасибо за объяснения, очень полезно! Единственное, что резануло: "самый минимальный" и "самый максимальный":) как "более лучший"
@bOOOOkash Жыл бұрын
Посмотрев данный ролик, я понимаю - какой же я тупой... Спасибо за ролик.
@arswarog Жыл бұрын
круто, так быстро и подробно про деревья я еще не видел материала
@ruslandad365 Жыл бұрын
Кончаю от твоего "Окей" 😁😁😁
@bOOOOkash Жыл бұрын
Лайк не глядя, а потом уже просматриваем в высоком качестве и без перемотки 🌚
@madbrozzer Жыл бұрын
Не стоило ли указать, что видео исключительно про бинарные деревья? А то складывается ощущение, что других и не существует. Я, к примеру, всё ждал, каким будет разбор B+Tree, чтобы в очередной итерации попробовать снова обуздать принцип работы InnoDB. Но видео очень залипательное, спасибо! Очень низкоуровнево, прям как я люблю.
@alexshturmovik3037 Жыл бұрын
согласен, эту структуру данных как-то обходят стороной, иногда даже BTree расшифровывают как Binary Tree(
@DenysHolovin Жыл бұрын
Очень низкоуровнево, прям как я не люблю :) Но было интересно
@MgsMen Жыл бұрын
Монтаж топ, но умение объяснять это искусство. Нашёл видео по этой же теме 9летней давности и сразу всё понял. А тут от ролика только перегрузка лишняя. Но лайк за труды
@gabibli Жыл бұрын
Скинь ролик плз
@cglike5 ай бұрын
Что за ролик?
@АртёмАртём-ю4ы Жыл бұрын
Очень качественный контент, спасибо
@ЯрославЗенин-й5з Жыл бұрын
Классный ролик, но эти нелогичные игры с интонациями просто убивают и сводят с ума. Из за них даже простая информация становится сложной. Такое ощущение что голос сгенерин плохой нейросетью.
@xagent Жыл бұрын
на 8:03 у вас опечатка. Вы говорите что сначала выводим родителя потом левого и правого, но в коде у вас наоборот сначала левый и правый и потом родитель.
@matweyrybakovskiy2952 Жыл бұрын
Отличный контент! Спасибо!
@ghjklfghk Жыл бұрын
О. Новенький видосик. Усваиваем
@sashakuznechkin Жыл бұрын
Спасибо за видео!!!
@vladimirzabaro6795 Жыл бұрын
Автор ты просто МегаМен. 👌👍 спасибо
@Колибри-г5в Жыл бұрын
Спасибо за очередное годное видео
@Игорь-ц2б8в Жыл бұрын
Спасибо за видео. Лайк👍
@rechw769 Жыл бұрын
как вовремя! как раз разбирался с ними! спасибо!
@china6714 Жыл бұрын
Как можно было жить и не знать этого, спасибо P.S. Серьёзно, без шуток
@laranMQR Жыл бұрын
Алекс, привет. Мне кажется, что на 7:05 также нужно и слева искать значение ключа заменяющего узла, чтобы его удалить. Т.е. просто нужно добавить node.left = delete(node.left, maxInLeft.key); . Переписал твой код и попробовал на датасете от 5 до 11 удалить вершину 8, то с кодом из примера 7 станет вершиной и также останется лепестком, поэтому нужно и для левой части делать проверку (удаление).
@jamessmit9738 Жыл бұрын
Спасибо конечно огромное, но контрольная по этой теме была на прошлой неделе
@leomysky Жыл бұрын
Спасибо за видео Очень круто и фундаментально
@ЧеловекСвободный-е4н Жыл бұрын
Подсказка, по поводу того, чтобы понять почему КЧД балансируется, узнайте что такое 2-3 дерево, частный случай n-дерева. Когда вы поймете, 2-3 дерево, тогда вы поймет что кчд - это и есть 2-3 дерево, просто для обозначения левого и правого элемента, нам понадобилось красить узлы бинарного дерева.
@Mick_Thomson_79 күн бұрын
12:00 странная формула описана, формула расчёта баланса: высота левого поддерева - высота правого поддерева, в таком случае 0 - 2 = -2 || 2 - 0 = 2, тогда понятно откуда берётся эта двойка, а из вашей как ни пытался понять, как при дисбалансе вправо получить 2, так ничего и не вышло
@VitaliiMar Жыл бұрын
на 8:13 функции deleteTree и copyTree совершенно идентичные, хотя вроде разные обходы.......
@andarworld8985 Жыл бұрын
Спасибо за видеоролик!
@djorjegolmud517 Жыл бұрын
Лучший просто!
@Олег-л5ю2п Жыл бұрын
Жёсткий контент. Примеров только бы побольше
@АндрейПетрович-е3я Жыл бұрын
Это класс, это здорово! Ну а компиляторы, теперь, как работают?
@BeketChan Жыл бұрын
видео с удовольствием .... посмотрел.
@d1merz Жыл бұрын
Капитальный красавчик !
@alekseyabiryukov Жыл бұрын
Ничего не понятно, но очень интересно!
@МейнерДрейвена-с5т Жыл бұрын
Интересно, круто рассказываешь, но пока тяжело. Вернусь через месяц
@asunali31316 күн бұрын
год прошел. что-то понятно стало ?
@openFrimeTv Жыл бұрын
еще было б очень интересно посмотреть ролик про файловые системы. К примеру фат32. Как оно все устроено, где хранятся данные, что такое размер клстера и тд
@MsAlexandr76 Жыл бұрын
у него есть поищите на канале!
@openFrimeTv Жыл бұрын
@@MsAlexandr76 вы меня дурите. нету такого
@ЯнПацюпа Жыл бұрын
Теперь точно есть) kzbin.info/www/bejne/fILCqZiPZcp2pqM
@ron8897 Жыл бұрын
Спасибо тебе за помощь
@atmiccmx Жыл бұрын
да ладно, чувакккк, обожаю
@srgndrt7 ай бұрын
08:00 опечатка в коде метода copyTree: правильно будет сначала print(node.value); затем левы и правый. А то получилcя такой же порядок как в deleteTree.
@nikolaiandrianov1856 Жыл бұрын
Прекрасно!!!
@aidamur Жыл бұрын
огромное спасибо за видео
@maxonbigbon Жыл бұрын
Интересная тема, а какое практическое применение, где это можно встретить?
@МишаБобров-и1з Жыл бұрын
Cпасибо, посмотрим
@eugenevolohonsky1469 Жыл бұрын
Самое крутое объяснение работы деревьев
@iGexogen Жыл бұрын
Черные родители, черный дядя, черные дети - как будто в гетто зашел)
@vadimmatskevich8439 Жыл бұрын
Благодарю за разбор красно-черного дерева Давно когда-то видел его разбор текстовый - не стал вьезжать и забил. STL на красно-черных - но кодировать их явно сложнее АВЛ и высота дерева в среднем на 25+% выше чем у АВЛ Так что друг друга они заменить и вправду не могут.
@anolegych Жыл бұрын
Смотрю про красно-черное дерево в голове играют Rolling Stones😅
@luminas-d9w Жыл бұрын
Paint it black, понимаю)
@KIR_Engineer10 ай бұрын
1. 7:39, 7:56 print(node.value) разве нам не нужно вывести ключи, т.е. print(node.key) ? 2. 14:22 фукция leftRoatet строка node.right_.left_ = node.right_.right_; не лишняя? 3. После вставки в узла АВЛ в дерево его нужно балансировать? P.s. очень крутое видео, спасибо.
@alexeyfladarov5200 Жыл бұрын
Годнота
@sweetarteko Жыл бұрын
Неалохо было бы посмотреть настолько подробное видео года два назад, когда была такая дисциплина. Было бы гораздо легче.
@luminas-d9w Жыл бұрын
23:51 если я правильно понял, то это второй кейс из момента 22:08. Тогда получается ошибочка: чёрные дети красного брата не должны быть нулями. Потому, что их чёрные высоты в момент до удаления равны 1, а не нулю.
@call_nick Жыл бұрын
Пушкааааа
@daniilivanik5021 Жыл бұрын
Персистентное AVL- дерево по неявному ключу с групповыми модификациями - кайф
@markbondarchuk7043 Жыл бұрын
По-моему на 7:05 рекурсивно удалять дубль 6ки нужно в левом потомке node.left = delete(node.left, maxInLeft.key) , а не в правом как на видео.
@laranMQR Жыл бұрын
Мне кажется, что нужно и там, и там. Т.е. нужно просто добавить node.left = delete(node.left, maxInLeft.key), а остальное также оставить.
@vsevolodkasatchikov6730 Жыл бұрын
@@laranMQRзачем и там, и там, если мы берём 6ку именно из левого дерева, значит ее оттуда и нужно удалить. Справа может отказаться другая 6ка, которую мы удалим "просто так"
@Pand1A7 ай бұрын
в жаве вылетает на наль поинтер тогда... Кроме того по коду удаляются и другие ноды не равные ключу что передается в функцию
@Mercowod Жыл бұрын
Спасибо 👍
@kartushinav5 ай бұрын
неплохо. но где b-tree?) желательно еще и сравнение b-tree с красно-черным деревом. в любом случае лайкос за сравнение с кубиком рубика)
@glebbondarenko67 Жыл бұрын
Спасибо за видео. Что-то код "Прямого обхода" совпадает с кодом "Обратно подхода". Или я чего-то непонял?
@ceo-s Жыл бұрын
Круто. Но жестко)
@МаксимМеснянкин-л6и Жыл бұрын
Мне кажется, когда рассказывали про удаление из красно-чёрного дерева, брата по ошибке назвали дядей
@aleksandrk.5818 Жыл бұрын
Хорош комменты сыпать) лайки ставьте)
@senkamatic8448 Жыл бұрын
Да поставили уже ))))
@Ahmedhkad Жыл бұрын
Тинькофф ищет только Middle(+) . а видео про Junior(стажер) 😅
@wensietland5169 Жыл бұрын
Хорошие видео, по кормену цикл идет?
@МишаБобров-и1з Жыл бұрын
Alek OS скажите пожалуйста в какой программе вы делаете слайды?
@iliyalaz6132 Жыл бұрын
Очень интересно
@MD-999_1Ай бұрын
Понимаю что классно рассказываешь с иллюстрацией, но многое не понимаю😢. Фиаско
@Yurii-b4k9 ай бұрын
В двоичном дереве поиска для метода insert забыли условие для проверки равности ключей (для того чтобы заменить значение по уже существующему ключу).
@mianaviatte Жыл бұрын
Объясните, пожалуйста, почему на 17:33 в правой ветке дерева узел черный, а не красный, если у него двое детей и оба черные листы? По объяснению, он должен быть красный и тогда все красно-черное древо несбалансированно... или нет?
@dimondsafkage4620 Жыл бұрын
Черный узел может иметь два черных ребенка, а вот красный узел не просто может, а обязан. В этом вся логика
@alanturing487 Жыл бұрын
А где найти код из видео? И, кажется, на видео не попал метод Rotate, необходимый для реализации балансировки после удаления в КЧ дереве.
@madbrozzer Жыл бұрын
Разбор структур различных файловых систем не ожидается ли в ближайшем будущем?
@someone-special-xc Жыл бұрын
Что-то я совсем запутался... 7, 5, 8 в узлах - это пример ключей или значений? 4:20
@Robovoblot20 күн бұрын
Раньше смотрела твои видосы, потому что было интересно. Сейчас - перед экзаменом. Спасибо!
@asunali31316 күн бұрын
на кого и где вы учитесь если не секрет. у меня в университете вроде такого не было
@memyselfi9155 Жыл бұрын
Братан что за музон в начале до рекламы ?
@Secvad Жыл бұрын
Классно чёрное дерево это конечно хорошо, но пока сам такую структуру не напишешь, то что-то полностью понять сложновато.
@ВиноградовАндрей-ь2к5 ай бұрын
В параметры всех функций передается объект класса Node, я правильно понимаю, что это корень?
@artroden3746 Жыл бұрын
6:55 то есть я могу в качестве корня взять либо 7 либо 6?
@AndreyMartinovich8 ай бұрын
Если захотите написать сами по коду из этого видео красно черное дерево, будьте осторожны, так как здесь очень много ошибок и если все переписать код просто не будет работать
@mikemerinoff Жыл бұрын
Подскажите, чем наибольший элемент дерева отличается от самого наибольшего?
@geekdev0 Жыл бұрын
Не глядя лайк ❤
@Вячеслав-к1е5е Жыл бұрын
Не слушая, тоже затычковал
@モリトモリ Жыл бұрын
Забавно что я сейчас как раз делала домашку з бинарньім деревом, и єто видео просто бьіло у меня в реках Судьба походу
@sospeedwagon9289 Жыл бұрын
це відео ще й тілки но вийшло, у тебе там мабудь кайф лютий?
@ЭйяфьядлайёкюдльБесперспективн Жыл бұрын
Я не понимаю
@sospeedwagon9289 Жыл бұрын
@@ЭйяфьядлайёкюдльБесперспективн пон
@ВладиславГабец-э6о Жыл бұрын
даааа, я тоже
@where631 Жыл бұрын
Real good stuff
@VitVit312 Жыл бұрын
Не уверен что всё хорошо понял, но на всякий случай покрасил деда
@Leonard_Gray6 ай бұрын
Как работают деревья? Большинство деревьев безработные. Связано это с тем, что они проваливают практически любое собеседование! 🤣
@danitkriper4114 Жыл бұрын
Объясните пожалуйста, а как черно-красные деревья связаны со значениями в них? Та выполняется правило, что левая ветвь меньше корня, а правая больше или равна?
@Ramzes200986 Жыл бұрын
вот одного не понял, где это применяется в каких задачах? есть ли примеры
@ЯнПацюпа Жыл бұрын
Да вообщем-то почти везде, просто почти всегда это реализуется в стандартных библиотеках языков программирования (TreeMap, TreeSet в Jave например), недрах ОС и.т.д. А прикладной код просто их использует "под капотом"
@Ramzes200986 Жыл бұрын
@@ЯнПацюпа а по конкретнее можно?
@ЯнПацюпа Жыл бұрын
@@Ramzes200986, вопрос именно про бинарные деревья поиска или в целом про структуры данных?