Хеш-таблица - Самая Популярная Структура Данных

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 429

  • @sashalukin
    @sashalukin  6 місяців тому +3

    Создал Telegram канал, в котором рассказываю о жизни в Лондоне, работе в Google и подготовке к собеседованиям. Подписывайтесь: t.me/saschalukin

    • @cinop0
      @cinop0 5 місяців тому +1

      Почему в JavaScript ты используешь var???? Есть же let

  • @sberdiug
    @sberdiug Рік тому +471

    Мне бы целый курс в таком стиле по всем структурам данных! 👍

    • @mtr-code
      @mtr-code Рік тому +29

      кстати, да, даже платный бы купил

    • @Unkmasold
      @Unkmasold Рік тому +2

      У Седжвика на курсере очень понятный курс

    • @sberdiug
      @sberdiug Рік тому +1

      @@mtr-code аналогично. за такой курс готов заплатить!

    • @bykaxagod597
      @bykaxagod597 Рік тому

      Karpov courses. Не реклама, сам планирую туда пойти.

    • @ФоксСенна
      @ФоксСенна Рік тому

      Да нахууй надо! Нет, то, что автор старался - это видно. Только его "объяснение" выглядит как рандомный плевок в лицо адекватности. Почему бакетов именно 5, кто должен реализовывать вычисление хэша, для чего эта вся петрушка ВООБЩЕ затеяна... Короче объяснение - лажа. Хуже - только зачитывание на вебку гугленых статей с кислой рожей. Но автор старался. Но цельного, логичного, понятного, непротиворечивого, фундаментального - не получилось...

  • @evgeniibubolev9881
    @evgeniibubolev9881 Рік тому +85

    Александр, я не знаю какой ты программист, но объясняешь очень хорошо. У тебя талант.

    • @leonidkazak1918
      @leonidkazak1918 3 місяці тому +2

      Я думаю, пиздатый он программист

  • @2difficult2do
    @2difficult2do Рік тому +17

    Супер! Это лучшее, наглядное и понятное объяснение, даже моя бабушка поняла.🤗
    Спасибо, Александр, за ваши подробные объяснения!!!

  • @vidnysom
    @vidnysom Рік тому +27

    Я вот вообще ни разу не программист, но разобрался что к чему в выходной и под пивко. Александр, у вас талант!

    • @slmpnv
      @slmpnv 7 місяців тому +5

      vidnyskuf)

  • @ДенисБахтиев
    @ДенисБахтиев Рік тому +31

    Не оставляю почти никогда на ютубе комментарии, но это просто фантастическое объяснение, спасибо за проделанную работу!)

  • @georgiy_kulagin
    @georgiy_kulagin Рік тому +121

    Отличное объяснение, было бы здорово услышать про графы и их подтипы, деревья итд)

  • @GromStal
    @GromStal 8 місяців тому +1

    Это одна из самых важных тем. И объяснение просто фантастическое. Браво. Лайк

  • @antonvoronin1654
    @antonvoronin1654 Рік тому +1

    Обычно не оставляю комментариев, но здесь не могу не прокомментировать: автор молодец! Очень доступно объяснил материал

  • @mukaddastaj5223
    @mukaddastaj5223 3 місяці тому

    Это шикарно. Спасибо огромное, помог как никто. Я и статьи читала и у учителя одного спрашивала, никто так нормально и не объяснил

  • @davidalexandr5716
    @davidalexandr5716 Рік тому +4

    Прикольный формат, быстро и без лишней информации!

  • @semimaks
    @semimaks 8 місяців тому

    Редко оставляю комментарии, но ваша работа восхищает. Четко, наглядно и по существу. Спасибо!

  • @АртурКоролёв-в1ч

    офигенный задний фон, красивое оформление + понятно и удобно, спасибо за видос!

  • @timgapps9878
    @timgapps9878 Рік тому +1

    Отличное видео. Мне как новичку в изучении java очень помогло разобраться в работе hashset и hashmap, а также понять как связаны методы hashCode() и equals() и для чего они нужны, спасибо огромное за твои уроки

  • @RRRozh
    @RRRozh Рік тому +5

    Где же ты был 3 дня назад, когда у меня это на собеседовании спрашивали...
    Спасибо за крутое объяснение, не понимал эту магию, а теперь понимаю)

    • @Wo_Wang
      @Wo_Wang 8 місяців тому

      Программирую встраиваемые системы больше 30 лет. За это время функция хеша вообще ни разу не понадобилась...
      :-)

  • @takahashisan2244
    @takahashisan2244 Рік тому +10

    Понятно и просто. Я в восторге! Буду ждать ещё подобных видео ❤

  • @J1mDGriz
    @J1mDGriz Рік тому +1

    Спасибо за объяснение темы. Несколько раз вчера прочитал эту тему с примерами кода в уроке на своём обучении. Ничего не понял.
    После вашего видео всё становится понятно

  • @yuryconnect4785
    @yuryconnect4785 8 місяців тому +1

    Отличное видео, сжато и простым/ доходчивым языком!
    Я порекомендовал его всем своим сокурсникам в академии, респект!!! :)

  • @fedorok12345
    @fedorok12345 Рік тому +2

    Объяснение реально очень классное, как-то до этого в целом понимал эту структуру, но здесь прям все встало на свои места

  • @igornamakonov6472
    @igornamakonov6472 Рік тому +3

    Очень хорошо рассказал, спасибо. Будет интересно посмотреть про другие структуры данных. Trees, linked list, graphs.

  • @alexschiopu
    @alexschiopu Рік тому +1

    Огонь!!! 🔥🔥🔥🔥🔥🔥
    До этого просто использовал это и не задавался, что там под копотом и как.
    А теперь с пониманием буду использовать)))
    Спасибо большое за простое и понятное объяснение!!!
    Саша, продалжай в том же духе, всё круто!!!

  • @svetlanamazhaykina6918
    @svetlanamazhaykina6918 7 місяців тому

    Спасибо за Ваш труд! Кто ясно мыслит - тот ясно излагает!

  • @SorokinAU
    @SorokinAU Рік тому +3

    Ваш канал - это находка!

  • @inbluegirl
    @inbluegirl Рік тому

    Огромное спасибо за популяризаторский стиль!!! Теперь поняла, наконец-то, что из себя эта хеш-таблица представляет

  • @СергейБеркетов-ф2к
    @СергейБеркетов-ф2к 6 місяців тому

    Формат крайне удобный и понятный. Спасибо! Стоит продолжать в этом духе.

  • @kirillzhukov1675
    @kirillzhukov1675 Рік тому +2

    Больше бы таких видео, где очень доступно и понятно

  • @panfilovandrey
    @panfilovandrey Рік тому +38

    Да, присоединяюсь к остальным комментариям: очень понятное и грамотное объяснение. В продолжение этой темы можно было бы разобрать способы написания хеш-функций с равномерным распределением для разных типов данных. Это тоже нужная в данной задаче (когда сами делаем хеш-сет) фишка. Очень нравятся твои видео, спасибо и за материал, и за подачу. Хотелось бы побольше :)

    • @ФоксСенна
      @ФоксСенна Рік тому

      6лять, почему бакетов ПЯТЬ?

    • @yuriytheone
      @yuriytheone Рік тому

      Это легко. Только выбери хэш алгоритм, а затем выполни нормализацию. От типа нормализации будет зависеть как бклет расти структура при уведичении.

    • @yuriytheone
      @yuriytheone Рік тому

      ​@@ФоксСеннабакетов может быть сколько угодно, все зависит от реализации...

    • @panfilovandrey
      @panfilovandrey Рік тому

      @@yuriytheone так вот как раз вопрос в сравнении хеш алгоритмов

    • @nkjhk9772
      @nkjhk9772 8 місяців тому

      @@ФоксСенна просто решили что 5, это не константа, можешь хоть сразу 100 ебнуть

  • @louis-nicoladavout7580
    @louis-nicoladavout7580 Рік тому +1

    Редко пишу коммент. Но это того стоит.
    Лучшее объяснение hash сетов и таблиц. ❤

  • @elseff
    @elseff Рік тому +3

    Очень понятно! Закрепил теперь точно эту структуру данных! Спасибо

  • @lagert5302
    @lagert5302 2 місяці тому

    Я очень редко пишу комментарий,но Боже,какое же это крутое видео!Я много читал про хэширование и про хэш-таблицы,но ничего не помогло мне понять это ,как это видео,я буквально прозрел!Спасибо ,бро,долгих лет тебе жизни

  • @bertzaza
    @bertzaza Рік тому +1

    Объяснение - мое почтение! Все понятно с первого раза)

  • @user-lk8n0fgjk
    @user-lk8n0fgjk Рік тому +6

    Александр, отличное видео, впрочем как все Ваши ролики! Спасибо!

  • @omgplznooo
    @omgplznooo Рік тому +1

    Это объяснение просто афигенно!
    На моем курсе это объяснялось очень криво... тут сильно лучше

  • @suspiciousgoose7904
    @suspiciousgoose7904 7 місяців тому

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

  • @Василий-ю2х8и
    @Василий-ю2х8и Рік тому +1

    Редко пишу комментарии, но тут не удержался) спасибо за такой детальный, а самое главное грамотный разбор, контент усваивается легко, слушать интересно, подписался, пойду смотреть предыдущие ролики)

  • @Gavao1604
    @Gavao1604 Рік тому

    Мужик, я ни хера не понял, что ты сказал, но ты мне близок. Ты заговорил и достучался до сердца.

  • @shpritsgodx
    @shpritsgodx Рік тому

    Спасибо моему другу,Жаке. За ссылку на видео.Очень интересно

  • @nikitafedorov5884
    @nikitafedorov5884 Рік тому +5

    Большое спасибо. Отличное объяснение. Продолжай!

  • @СилуанПоцелуев
    @СилуанПоцелуев Рік тому +34

    Коллизия - это совпадение хэшкода у двух разных объектов, а не факт попадания этих объектов в один бакет.
    Соответственно и логика проверки внутри бакета двухуровневая - когда попали в бакет и бежим по элементам, то сравниваем их сначала по хэшкоду и только если они совпадают то сравниваем по equals. По крайней мере для java это так

    • @andreibulatov2395
      @andreibulatov2395 Рік тому +1

      100% true

    • @justDimoon
      @justDimoon Рік тому

      Согласен 💯

    • @ahilesova_pyata
      @ahilesova_pyata 11 місяців тому

      Вроде бы автор правильно сказал, коллизия это попадание в один бакет нескольких элементов даже с разными хэшами. А проверка ключей в списке идёт, сначала по хэш коду, потом ссылки (==) и только потом equals(). Java. Но автор конечно, слишком обобщил и упростил

    • @СилуанПоцелуев
      @СилуанПоцелуев 11 місяців тому

      @@ahilesova_pyata Нет, коллизия к бакетам прямого отношения не имеет, автор неверно использует термин 'коллизия': ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D0%BB%D0%B8%D0%B7%D0%B8%D1%8F_%D1%85%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8

    • @ЫрысбекАбдималикоа
      @ЫрысбекАбдималикоа 10 місяців тому

      Если хеш-код разные то объекты разные, а если хеш-код одинаковые это значит что объекты одинаковые

  • @АлександрТаран-р9р

    коротенько и доходчиво. Спасибо за проделанную работу!

  • @vld_dmn
    @vld_dmn Рік тому +2

    Это великолепное объяснение

  • @saigon9505
    @saigon9505 Рік тому +2

    Очень интересно и понятно рассказано! Отличная подача материала

  • @ilyasavenok9051
    @ilyasavenok9051 10 місяців тому

    Спасибо за видео. Было бы здорово увидеть объяснение, как работает функция hashCode() изнутри и как мы можем её переопределять.

  • @КонстантинБелобородов

    Очень приятная и интересная подача материала! Спасибо! Пожалуй подпишусь.

  • @Poli.Pavlovich
    @Poli.Pavlovich 26 днів тому

    Крутейшее объяснение! Для меня темп был немного быстрым, в основном смотрела на скорости 0.75 :)

  • @ЕгорРура
    @ЕгорРура Рік тому

    Спасибо за ролик! Было очень ясно и доступно объяснено! И не знал что обычный объект js такие чудеса вытворяет!!!!

  • @igorglushatov1948
    @igorglushatov1948 Рік тому +17

    Хорошее и простое объяснение без математических з**бов. Спасибо большое

  • @sergeinerobeev3501
    @sergeinerobeev3501 Рік тому +1

    Спасибо! 👍Повторение-мать учения!

  • @johnjonson4641
    @johnjonson4641 Рік тому +1

    Ради таких видео я и плачу за интенет
    Спасибо!)

  • @rost170
    @rost170 Рік тому +1

    Это база. Объяснение потрясающее

  • @madyogi2108
    @madyogi2108 Рік тому

    Как приятно тебя слушать, смотреть твои видео, продолжай в том же духе!
    Изменено: я настаиваю, чтобы ютуб создал официальный плейлист с 1000 самых понятных видео на ютубе, и твое будет первое!!

  • @nsdnight
    @nsdnight 9 місяців тому

    Лучшее видео по хеш-таблицам.

  • @АндрейНикола-п6ю
    @АндрейНикола-п6ю 10 місяців тому

    Спасибо за такое понятное и подробное объяснение! Отличная работа!

  • @aleksey8530
    @aleksey8530 Рік тому +1

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

  • @alcor9921
    @alcor9921 Рік тому +11

    Впервые на канале и удивился как понятно ты объяснил данную тему.
    Спасибо за тот труд ❤
    Было бы круто, если б еще к твоему плейлисту разбора задач с собеседований из бигтеха прибавился и Нетфликс, пожалуйста

  • @moments_shock
    @moments_shock Рік тому +3

    Классно и понятно для новичков))
    Тем временем Java где HashSet использует в своей реализации HashMap 🙃

  • @dregster564
    @dregster564 Рік тому

    еще одна находка для меня! круто, еще с примерами на нескольких языках

  • @Алексейм-с7б
    @Алексейм-с7б Рік тому +6

    Супер! ❤ спасибо! Можно вообще сделать разборы структур данных!? Например, про деревья 😅😊

  • @andreimikhalkevich5633
    @andreimikhalkevich5633 Рік тому

    спасибо автору, легкая и главное понятная подача материала

  • @Hellen-qx3lb
    @Hellen-qx3lb 9 місяців тому

    Как здорово объясняешь ! Я не программист , но все поняла

  • @abuiman5251
    @abuiman5251 Рік тому

    Спасибо, Саша!
    Для меня это лучшее объяснение которое я встречл👍🏻👍🏻👍🏻
    Не останавливайся пжл!

  • @alekseykirov4647
    @alekseykirov4647 10 місяців тому

    Паря не останавливайся - эта годнота нужна, визуализация решает.

  • @tal_wolfrid
    @tal_wolfrid Рік тому +1

    Очень круто объясняешь и визуально показываешь 💪

  • @TopMusicBeautifulLife
    @TopMusicBeautifulLife Рік тому +2

    Спасибо большое! Продолжайте в том же духе!

  • @ИльяВласов-ф7к
    @ИльяВласов-ф7к 6 місяців тому

    Очень понятно и легко. Спасибо за детальное объяснение!

  • @ilyalevanov
    @ilyalevanov Рік тому

    как раз на днях задался вопросом почему при использование хеш таблиц сложность поиска о(1), и тут твой видос! спасибо

  • @MrGoodCatSCP
    @MrGoodCatSCP 6 місяців тому

    Ай, как хорошо слушать и смотреть! Рад, что алгоритмы показали такое видео)
    Оффтопный вопрос: а что за монитор?

  • @vladimir.kravets
    @vladimir.kravets Рік тому

    Красиво, наглядно, но есть пара нюансов:
    1. массив бакетов пересоздается не всегда, когда количество элементов достигает количества бакетов, как правило еще есть такой параметр, как load factor, то есть это управляемая история
    2. из-за того, что существует атака на хэш-таблицу тем, что в нее подкладывают элементы дающие коллизию, то в нормальных реализациях hash map есть контроль такой ситуации и в случае её возникновения, то происходит переключение со списка на дерево

  • @bysedova
    @bysedova Рік тому

    Присоединяюсь к желающим разобраться с графами!

  • @Lesha-v2j
    @Lesha-v2j Рік тому

    Привет! Впервые зашел на твой канал, и это очень крутое объяснение хэш-таблиц! У меня будто прозрение после твоего видео, спасибо!

  • @winternight4754
    @winternight4754 Рік тому +1

    Спасибо за ролик, давно смотрю ваши выпуски. Очень интересно и понятно.

  • @ПелагеяПетровак
    @ПелагеяПетровак 5 місяців тому

    Спасибо! у тебя талант объяснять)

  • @believer.2001
    @believer.2001 Рік тому +2

    Большое спасибо за "уроки", все предельно понятно и интересно изложено 👍
    Было бы неплохо увидеть твой ролик про сборщик мусора, частенько спрашивают на собеседованиях )

    • @ФоксСенна
      @ФоксСенна Рік тому

      так ничерта же не понятно! я тут в каментах один адекватный?

    • @MrYbs-ie1jj
      @MrYbs-ie1jj Рік тому

      ​@@ФоксСеннаа ты не умеешь писать.

  • @kotsimon6468
    @kotsimon6468 8 місяців тому

    Великолепное объяснение! Спасибо Вам!

  • @cd6693
    @cd6693 10 місяців тому

    Большое спасибо за пояснение, еще и на 3 языках)

  • @obusis
    @obusis Рік тому +1

    Отличный контент! Отличная подача! Ждём продолжения.

  • @sberdiug
    @sberdiug Рік тому +5

    Вау! Отличный урок! 👍

  • @kl45gp
    @kl45gp Рік тому +1

    отлично обьясняешь, спасибо! Только забыл раскрыть смысл почему это hash и почему это set

  • @worldfree1190
    @worldfree1190 Рік тому

    Вау! Смотрю уже довольно давно и каждый раз полный восторг

  • @DefleMask
    @DefleMask Рік тому +4

    Выборка по остатку от деления довольно медленная. В большинстве реализаций используются битмаски. Хоть размеры таблиц и становятся кратны степеням двойки, зато логический and выполняется за один такт процессора, вместо шести-десяти у модуля. Также в Java стандартный HashMap уж очень прожорливый, т.к. оборачивает объекты в ноды с ссылками на предыдущий и следующий элемент. Потому для небольшого числа элементов (до 16384) лучше использовать такие вариации, где таблицы ключей и значений представлены одним массивом

    • @АдамСмит-ы7р
      @АдамСмит-ы7р Рік тому

      Ну про большинство вы всё же загнули, например в libc++ (см. функцию __constrain_hash) на случай степени двойки есть ифик, но допускается произвольное значение __bc, в libstdc++ всегда просто берут остаток от деления (struct _Mod_range_hashing).
      Насчёт медленности взятия остатка от деления - можете посмотреть на библиотеку fastmod, можно немножко предподсчитать и обойтись умножением и сдвигами (правда, вышеупомянутые реализации так не делают, наверное чтобы ABI не ломать).
      А по три ссылки на объект - разве ж это по джавовым меркам прожорливый)

  • @FariusFriends
    @FariusFriends Рік тому +1

    Теперь QR код есть ;). Смотрю тебя от когда у тебя было 4 видео на канале.... keep going :)

    • @sashalukin
      @sashalukin  Рік тому +1

      Спасибо, только благодаря тебе и увидел!

  • @pridelander
    @pridelander 8 місяців тому

    Приятно слушать и смотреть, спасибо тебе!

  • @acthanger7420
    @acthanger7420 Рік тому +1

    Крутой контент делаешь, спасибо)

  • @КириллКозырь-л9л

    Саша, большое спасибо!
    хороший материал

  • @1dees253
    @1dees253 10 місяців тому

    Лучшее и понятное видео по словорям/мапам, которое я видел. Одназначно заслужил подписку и лайкос)

  • @djorayevofficial5060
    @djorayevofficial5060 11 місяців тому

    Саша спасибо . Видео супер , понятный и простой. Хотелось бы весь курс про Алгоритмов на таком стиле сам я данный момент пытаюсь изучать их но из-за того что у меня нету достаточного знания высшей математики как-то сложно стало понять суть алгоритмов. Был бы рад если в скором времени будете запускать курс.

  • @galemaj
    @galemaj 19 днів тому

    материал подан просто: великолепно

  • @daemon_alecto9586
    @daemon_alecto9586 11 місяців тому +2

    Давай такое видео по stack/queue/dequeue

  • @dragerjeji5279
    @dragerjeji5279 Рік тому

    Отлично, отлично, отлично! Огромное спасибо за это видео!

  • @secondskin25
    @secondskin25 Рік тому

    То чувство, когда автор делает видео, только что бы всё это не забыть к своей старости.

  • @Baha996
    @Baha996 Рік тому

    Шикарный ролик! Показываю своим ученикам)

  • @billgrover3130
    @billgrover3130 Рік тому

    Офигенная подача материала огонь🔥🔥🔥🔥

  • @АнатолийРубанков-я3п

    Верни Толю.^.^, Спасибо за полезную информацию)

  • @Mr.Bellamy
    @Mr.Bellamy Рік тому +2

    Хороший контент, только синтаксис у javascript очень древний, 10 летней давности)))
    В js HashSet это Set, хэш таблица это {} или его более продвинутый вариант - Map
    Давай еще про структуры данных. Какие бывают разновидности деревьев. Графы и т.д.

  • @Juli_tara
    @Juli_tara Рік тому +4

    Саша, привет! Подскажи, пожалуйста, есть ли у тебя наставничество по алгоритмам и задачам или в целом подготовке к тех интервью?

    • @sashalukin
      @sashalukin  Рік тому

      Пока не думал об этом

  • @antonkl858
    @antonkl858 Рік тому +5

    Хорошо бы затронул перождение списка в дерево - достаточно важная вещь в Hash Java. И часто спрашивают еще про то, как считает hashCode()

    • @DrAlan3
      @DrAlan3 Рік тому

      Подписываюсь под словами. сам хотел это попросить, но уже есть то я просто лайкну.

    • @gimeron-db
      @gimeron-db Рік тому

      Пока только учусь, но кажется, что это какая-то контрольная сумма (не важно какая, главное, чтобы для одного и того же объекта выдавала один и тот же код)

  • @Kepchyk1101
    @Kepchyk1101 Рік тому +1

    Классная подача

  • @adammason482
    @adammason482 Рік тому +1

    Спасибо за ролик!

  • @grigorystasevich33
    @grigorystasevich33 Рік тому +1

    Отличное видео, спасибо

  • @cathello2900
    @cathello2900 Рік тому

    Очень круто! Надо прям все под такое поеснние переводить