Daria Emacs
Daria Emacs
  • Видео 107
  • Просмотров 1 260 676
Деревья поиска | История развития
Поддержать канал: 41001553838775 (yoomoney)
Спасибо за Вашу поддержку!
Что такое бинарное дерево поиска, и для чего оно нужно?
Как сбалансировать дерево, и какие есть самые известные способы это сделать?
Все это мы обсудим в видео.
00:00 - приветствие
00:54 - бинарное дерево поиска (BST)
03:36 - длина пути дерева (path length)
05:42 - АВЛ-деревья (AVL-tree)
07:56 - история изобретения АВЛ-деревьев
09:49 - 2-3 деревья
12:06 - B-деревья
12:40 - 2-3 дерево в бинарном виде
13:19 - почему B-деревья так называются
14:37 - Google реализовал C++ контейнеры на B-деревьях
14:57 - 2-3-4 деревья (симметричные бинарные деревья)
15:36 - weight-balanced tree (BB-tree, взвешенно-сбалансированные деревья)
17:53 - height-b...
Просмотров: 3 636

Видео

Пишу merge на leetcode
Просмотров 14 тыс.9 месяцев назад
Пишу merge на leetcode
STL с нуля | C++
Просмотров 16 тыс.3 года назад
STL с нуля | C
Name mangling | Арифметические преобразования в C++
Просмотров 6 тыс.3 года назад
Name mangling | Арифметические преобразования в C
Собеседование | Junior C++
Просмотров 245 тыс.3 года назад
Собеседование | Junior C
Диплом Бакалавра | Прикладная Математика и Информатика
Просмотров 14 тыс.3 года назад
Диплом Бакалавра | Прикладная Математика и Информатика
Обратный порядок слов на C++17 и Си
Просмотров 4,6 тыс.3 года назад
Обратный порядок слов на C 17 и Си
Т. Кормен | Рекуррентное уравнение. Доказательство с помощью математической индукции
Просмотров 2,9 тыс.3 года назад
Т. Кормен | Рекуррентное уравнение. Доказательство с помощью математической индукции
Глава 2.2 Т. Кормен Анализ алгоритмов
Просмотров 3,5 тыс.3 года назад
Глава 2.2 Т. Кормен Анализ алгоритмов
Глава 2.1 Т. Кормен Алгоритмы: построение и анализ
Просмотров 9 тыс.3 года назад
Глава 2.1 Т. Кормен Алгоритмы: построение и анализ
С++. Указатели. Начало
Просмотров 7 тыс.3 года назад
С . Указатели. Начало
C++ Quiz | Прохожу тест по C++
Просмотров 31 тыс.3 года назад
C Quiz | Прохожу тест по C
Разбор математики в "Операция Ы и другие приключения Шурика"
Просмотров 3,3 тыс.3 года назад
Разбор математики в "Операция Ы и другие приключения Шурика"
Часть 6. Читаем из файла и расшифровываем
Просмотров 2,3 тыс.3 года назад
Часть 6. Читаем из файла и расшифровываем
Часть 5. Сжимаем текст и записываем в файл
Просмотров 3,2 тыс.3 года назад
Часть 5. Сжимаем текст и записываем в файл
Часть 4. Строим дерево и создаем коды
Просмотров 3,1 тыс.4 года назад
Часть 4. Строим дерево и создаем коды
Часть 3. Добавляем очередь с приоритетами
Просмотров 3,4 тыс.4 года назад
Часть 3. Добавляем очередь с приоритетами
Часть 2. Сам алгоритм Хаффмана
Просмотров 4,7 тыс.4 года назад
Часть 2. Сам алгоритм Хаффмана
Дополнение к 1 части. Сериализация вектора, boost serialization
Просмотров 2,9 тыс.4 года назад
Дополнение к 1 части. Сериализация вектора, boost serialization
Часть 1. Пишем алгоритм Хаффмана на C++
Просмотров 10 тыс.4 года назад
Часть 1. Пишем алгоритм Хаффмана на C
Мои впечатления о Робофесте 2020, категория "Робофишки"
Просмотров 2 тыс.4 года назад
Мои впечатления о Робофесте 2020, категория "Робофишки"
Марковские цепи на простом примере с несимметричной монетой
Просмотров 6 тыс.4 года назад
Марковские цепи на простом примере с несимметричной монетой
C++ vs WeDo 2.0 | Школота против ветеранов
Просмотров 4,1 тыс.4 года назад
C vs WeDo 2.0 | Школота против ветеранов
Вычисляем e с точностью 600 знаков после запятой
Просмотров 4 тыс.4 года назад
Вычисляем e с точностью 600 знаков после запятой
Как писать выражения в C++ | 7 советов
Просмотров 3 тыс.4 года назад
Как писать выражения в C | 7 советов
Не будите программиста
Просмотров 2 тыс.4 года назад
Не будите программиста
Как правильно назвать класс, переменную, функции | C++
Просмотров 2,1 тыс.4 года назад
Как правильно назвать класс, переменную, функции | C
Часть 2. Плюсы и минусы профессии программист.
Просмотров 1,7 тыс.4 года назад
Часть 2. Плюсы и минусы профессии программист.
Часть 1. Плюсы и минусы профессии программист.
Просмотров 2,6 тыс.4 года назад
Часть 1. Плюсы и минусы профессии программист.
Три главных принципа хорошей программы. Смотрю свой старый код
Просмотров 4,9 тыс.4 года назад
Три главных принципа хорошей программы. Смотрю свой старый код

Комментарии

  • @Kalin_cheetah
    @Kalin_cheetah 11 дней назад

    А насколько для C++ джуна важны знания например POSIX, сети, протоколы передачи данных? Или эти моменты постигаются в процесе работы? Понимаю, зависит от организации, но если нет коммерческого опыта, то владение языком рассматривается как основной критерий? Понимаю, что основы CS важны для c++ника

  • @Kalin_cheetah
    @Kalin_cheetah 15 дней назад

    Классный ролик, спасибо вам! Один момент до меня все-таки не доходит: на уровне памяти чем копирование отличается от перемещения? Вот есть вектор объектов типа Т. Мы вызывает метод push_back() и передаем в качестве аргумента rvalue при помощи std::move(), но чтобы новый элемент вектора встал последовательно за предыдущим, его же нужно туда поместить, т.е процессор все равно проделывает работу по размещению в памяти данных. Я думал, что это и есть основное процессорное время на данную операцию. Или же проблема заключается в том, что объект сначала создается на стеке, а потом его нужно еще и скопировать в нужное место? Т.е, перемещая, мы все равно тратим процессорное время на размещения объекта в новых ячейках памяти, но избегаем создания временного объекта на стеке?

  • @mioxive
    @mioxive 25 дней назад

    Чет сложно, битовые операции какие то

  • @DeadnWoon
    @DeadnWoon 29 дней назад

    Честно, я как человек програмированием не зарабатывающий, хотя и имеющий приличное представление о языках программирования, являюсь фанатом даже не Си, а Си если убрать из него "высокоуровневые надстройки" типа енум. В своё время создал проект языка, который условно прозвал макроассемблером для несуществующего процессора. Там был один тип данных - байтовый вектор. Не было никаких не то что классов, а даже структур или массивов. Язык программирования ведь отражает определённую идеологию, вкусы его создателей. Я полагаю, что человечество стремительно несётся к концу именно из-за неконтролируемого стремления к упрощению и комфорту. Зачем нужны в смартфонах камеры на 48 мегапикселей или телеэкраны с диагональю один метр? Я с этим несогласен и не воспринимаю этого. Хотя и признаю, что если писать серьёзные большие программы для современных устройств на моём макроассемблере для несуществующего процессора - ни одному программисту не хватит ни нервов, ни жизни на это.

  • @networksx333
    @networksx333 Месяц назад

    Спасибо Вам большое!

  • @antonreashin
    @antonreashin Месяц назад

    Благодарю ❤🙏

  • @truth_will_win
    @truth_will_win Месяц назад

    Спасибо, познавательно.

  • @user-fh9jb9nz2m
    @user-fh9jb9nz2m Месяц назад

    Здравствуйте, а что за фильмы в ролике? 🧐 первый узнал это отроки во вселенной, а второй? Нашел. Через яд картинки. Точка точка запятая..😊

  • @claudimdmc137
    @claudimdmc137 Месяц назад

    хотелось бы как нибудь увидеть от Вас разбор асинхронной природы C++. тема весьма сложная на первых порах. интересно как всё это работает под капотом, можно рассмотреть примеры с IO на poll, epoll, или Boost.Asio с корутинами из 20++

  • @user-rb8ie5tu7n
    @user-rb8ie5tu7n Месяц назад

    Вы очень классная!!!

  • @ultracolor
    @ultracolor 2 месяца назад

    Изучение всех этих редакторов это не подъём по лестнице, это сваливание с лестницы в начало и попытка подняться по новому.

    • @user-rj5kt3ft8w
      @user-rj5kt3ft8w Месяц назад

      вся жизнь это подъем по лестнице с постоянным падением вниз и известным исходом

  • @uchenoche
    @uchenoche 2 месяца назад

    Здравствуйте! Спасибо за ваши ролики! Сложно было осваивать Emacs? Есть какое-то лайфаки по быстрому освоению Emacs?

  • @_wania
    @_wania 2 месяца назад

    В приличном обществе за такой код канделябром бьют

  • @reosfire
    @reosfire 2 месяца назад

    А литкод за такое не банит?)

  • @rvvon1214
    @rvvon1214 2 месяца назад

    Спасибо, очень понятно, хорошие аналогии и крутой "реальный" рендеринг как выглядит обучение.

    • @DariaEmacs
      @DariaEmacs 2 месяца назад

      Спасибо 😊.

  • @user-gv8vo6hb2p
    @user-gv8vo6hb2p 2 месяца назад

    Очень интересно, но ничего не понятно

  • @Georgggg
    @Georgggg 2 месяца назад

    "Чем ближе крах империи, тем безумнее ее законы"

  • @revingar
    @revingar 2 месяца назад

    Спасибо. Зависимость одной функции от другой по сути

  • @vova_dev
    @vova_dev 2 месяца назад

    Потрясающе! С возвращением, Дарья!

    • @DariaEmacs
      @DariaEmacs 2 месяца назад

      Спасибо 😊.

    • @vladimir_v_it
      @vladimir_v_it 2 месяца назад

      @@DariaEmacs Дарья, приглашаю на интервью)

  • @-.-_-_.-_-ValerA..___._-.-_._-
    @-.-_-_.-_-ValerA..___._-.-_._- 3 месяца назад

    Да, но они занимают много оперативки, ведь перемещать значения надо (например, если будет размер массива 100000 и мы хотим удалить первый элемент, то надо будет перемещать 99999 элементов)

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Можно его поменять местами с последним и сделать pop_back.

    • @GomerSimpson-scratch
      @GomerSimpson-scratch Месяц назад

      @@DariaEmacs эта техника, с pop_back() для вектора, известна ещё с 2000-х, в "Эффективном использовании STL" С. Майерса уже рекомендовалось её использовать для удаления элементов за константное время. А все эти идиомы бесполезный синтаксический сахар, с большим вопросом к производительности

  • @FroL_Onn
    @FroL_Onn 3 месяца назад

    wow!

  • @cdeblog
    @cdeblog 3 месяца назад

    Лучше не думать что за хрень написана, а просто сломать колени автору этого художества. Код пишут для людей и он должен быть легко читаем, а не ребусом который нужно разгадать 😂

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Чукча - не читатель, чукча - писатель.

  • @LetroScript
    @LetroScript 3 месяца назад

    Нахера ты на Си++ пишешь, пиши на TypeScript. Си++ не для новичков!!!

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Хороший совет самому себе 😉.

  • @staf5496
    @staf5496 3 месяца назад

    Спасибо за способ писать код. И + еще добавить отсутствие комментариев и какого либо описания 😂

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Это не способ писать код. Это вопрос с собеседования, для того, чтобы узнать ваш уровень знания языка.

  • @visualoffchannel
    @visualoffchannel 3 месяца назад

    Где-то повесился один питонист.

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Только один?

  • @stvdedal
    @stvdedal 3 месяца назад

    я ошибся, подумал что тут оператор ','

  • @giorgi_pa
    @giorgi_pa 3 месяца назад

    Это во всех компиляторах такое поведение??? Спрашиваю т.к был ровно аналогичный случай и в Релизе результат был ой как не такой.

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Тогда у Вас был компилятор с ошибкой, отловите и зашлите патч. Он должен вести себя по стандарту: timsong-cpp.github.io/cppwp/n4659/basic.scope.declarative#2

  • @dmanikhine
    @dmanikhine 3 месяца назад

    За такие примеры кода в реальной жизни надо "загрызать".... и выдавать запрет на профессию.

  • @nikitross7466
    @nikitross7466 3 месяца назад

    Так переменные об'являют только студенты

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Программа составлена с целью проверить Ваши знания, как вариант того, что у Вас спросят на собеседовании.

    • @nikitross7466
      @nikitross7466 3 месяца назад

      @@DariaEmacs Сам пример хороший)

  • @andry_smith
    @andry_smith 3 месяца назад

    Поэтому у нас в компании по рукам бы настучали за такую запись. Код должен быть в первую очередь удобным в чтении. Каждое объявление в новой строке. А ещё бы за перекрытие переменных одинкаовыми именами в догонку бы прилетело. )))

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Это задачка с собеседования, вряд ли кто-то так будет писать код.

    • @andry_smith
      @andry_smith 3 месяца назад

      @@DariaEmacsЯ понимаю, но зачем ставить в собеседование заранее неприемлемые паттерны? Есть же достаточно потенциальных проблем в обычных казалось бы строках кода. Просто джуны будут сыпаться на таком, а оно нигде такое не делается.

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      @@andry_smith благодаря этому коду достаточно просто определить уровень знания языка у кандидата. Послушать его размышления о том, как работает этот код.

  • @povloid
    @povloid 3 месяца назад

    Начинать надо с древних книжек 90 или нулевых годов, потому что с тех пор такую кодовую базу на говнокодили что ее десятилетиями боятся трогать и с осторожностью поддерживают, какие там новые стандарты 11 или 17.... Старые ANSI и ISO еще не один жаваскрипт и прочий мэйнстрим переживут...

  • @paranoiiik484
    @paranoiiik484 3 месяца назад

    "жи".. это, конечно, жёстко

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      А надо было "же"?

    • @paranoiiik484
      @paranoiiik484 3 месяца назад

      Нужно было читать букву английского алфавита так, как она действительно произносится =) Это так.. на заметку. Никто не запрещает продолжать читать по-сельски

    • @und3rwit
      @und3rwit 3 месяца назад

      ​@@DariaEmacs джей

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      @@paranoiiik484 как бы нет, читается обычно, и, жи, ка, ijk, для тех, кто университет заканчивал. Это из математики пришло. Если у вас джей, значит, вы самоучка.

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      @@und3rwit нет, выше ответила

  • @alexanderushakov4892
    @alexanderushakov4892 3 месяца назад

    А почему амперсанд вначале около типа находится, а при выделении он прилепает к имени i, в таком случае логически понятно, что она является ссылкой на перемеенную с типом int, а j это просто переменная типа int. А вот, когда амперсанд приклеен к типу, почему надо понимать, что это не объявление двух ссылок на переменную с типом int, просто второй еще не присвоен адрес ) всегда это путает меня

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Компилятору всё равно, а люди пишут и так и так. Просто нужно это понимать и держать в голове, когда читаешь код 😉.

  • @TheTalants
    @TheTalants 3 месяца назад

    Даже в ассемблере проще 🤔 Наверное...

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Так ассемблер самый простой язык)).

    • @TheTalants
      @TheTalants 3 месяца назад

      @@DariaEmacs язык простой, но нужно знать устройство для которого код пишешь. 🤔 Хотя для меня и ассемблер сложно.

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      @@TheTalants , да, это точно

  • @boichik1549
    @boichik1549 3 месяца назад

    Можете, пожалуйста, поделиться источниками, ссылками на видео, чтобы побольше разобраться в этой теме

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      en.cppreference.com/w/cpp/language/bit_field Они пришли из языка Си, поэтому можно почитать в книге Кернигана и Ритчи.

  • @alehaymkm
    @alehaymkm 3 месяца назад

    Вроде и элементарно, но не тривиально.

  • @laer0
    @laer0 3 месяца назад

    Подобные задачки учат только одному... Тех, кто так пишет код в серьёзных проектах нужно п*****ь ссаными тряпками.

    • @DariaEmacs
      @DariaEmacs 3 месяца назад

      Да не пишут так код, это задания для собеседований. Они проверяют, Ваше понимание основ языка.

  • @javapena
    @javapena 3 месяца назад

    Ого! Как интересно и понятно Вы объясняете! Спасибо Вам огромное!

  • @anatoliyv5607
    @anatoliyv5607 3 месяца назад

    О ! наконец то

  • @qwertymangames1800
    @qwertymangames1800 4 месяца назад

    Коротко о сути видео: Хотите изучить Английский язык? Сначала изучите китайский. После него вы легко сможете изучить любой другой язык так как китайский сложнее.

  • @vasyapupkin69cyber
    @vasyapupkin69cyber 4 месяца назад

    Ой сложно лучше на СВО поеду, там 200 тысяч платят!

  • @dimaster6437
    @dimaster6437 4 месяца назад

    Какая милая девушка😊

  • @Paradise_Box
    @Paradise_Box 4 месяца назад

    И вот зачем я это теперь умею? :)

  • @alehaymkm
    @alehaymkm 4 месяца назад

    🎉🎉🎉

  • @Alonso_Kinn
    @Alonso_Kinn 4 месяца назад

    Одно странно....почему не упомянули книгу : - ОП на С++ Лафорэ ?

    • @DariaEmacs
      @DariaEmacs 4 месяца назад

      Про него отдельное видео было.

  • @Alonso_Kinn
    @Alonso_Kinn 4 месяца назад

    8:41 😅😅😅😅 Ржака !!! Спасибо , я вспомнил свое время в Академии с улыбкой . Так и было ++ )))))

  • @Alonso_Kinn
    @Alonso_Kinn 4 месяца назад

    Ххаахха😅😅😅 Прикольно! Я вас впервые вижу , но вы такая увлеченная прям программированием .

    • @DariaEmacs
      @DariaEmacs 4 месяца назад

      Спасибо 😊.

  • @leslievon
    @leslievon 4 месяца назад

    'Promosm'

  • @user-bs9kr3cu9n
    @user-bs9kr3cu9n 4 месяца назад

    для прохождения собеса достаточно понимания основных вещей: нотаций сложности и базовых принципов структур и главное как это все рализовано в языке на котором вы пишете. Условно в гуе чтоб он не получился мертвеньким, надо хешами активно манипулировать, но совать их везде и всюду не надо, нужен баланс между сложностью и скоростью. Реализацию за Вас легко напишет гпт, а также тесты и всю документацию. Всегда напоминайте ему что надо следовать принципам солид, велите ему по максимуму перепроверять самого себя и все пойдет как по маслу.

    • @DariaEmacs
      @DariaEmacs 4 месяца назад

      На с++ вряд-ли напишет, а так, да, со всем согласна.

    • @user-fh9jb9nz2m
      @user-fh9jb9nz2m Месяц назад

      🤔 надо взять на карандашик. Спасибо 🙏

  • @Georgggg
    @Georgggg 4 месяца назад

    А зачем было создавать класс? Языки с ООП явно разжижают мозги тем кто их использует.