Да нахууй надо! Нет, то, что автор старался - это видно. Только его "объяснение" выглядит как рандомный плевок в лицо адекватности. Почему бакетов именно 5, кто должен реализовывать вычисление хэша, для чего эта вся петрушка ВООБЩЕ затеяна... Короче объяснение - лажа. Хуже - только зачитывание на вебку гугленых статей с кислой рожей. Но автор старался. Но цельного, логичного, понятного, непротиворечивого, фундаментального - не получилось...
Отличное видео. Мне как новичку в изучении java очень помогло разобраться в работе hashset и hashmap, а также понять как связаны методы hashCode() и equals() и для чего они нужны, спасибо огромное за твои уроки
Спасибо за объяснение темы. Несколько раз вчера прочитал эту тему с примерами кода в уроке на своём обучении. Ничего не понял. После вашего видео всё становится понятно
Огонь!!! 🔥🔥🔥🔥🔥🔥 До этого просто использовал это и не задавался, что там под копотом и как. А теперь с пониманием буду использовать))) Спасибо большое за простое и понятное объяснение!!! Саша, продалжай в том же духе, всё круто!!!
Да, присоединяюсь к остальным комментариям: очень понятное и грамотное объяснение. В продолжение этой темы можно было бы разобрать способы написания хеш-функций с равномерным распределением для разных типов данных. Это тоже нужная в данной задаче (когда сами делаем хеш-сет) фишка. Очень нравятся твои видео, спасибо и за материал, и за подачу. Хотелось бы побольше :)
Я очень редко пишу комментарий,но Боже,какое же это крутое видео!Я много читал про хэширование и про хэш-таблицы,но ничего не помогло мне понять это ,как это видео,я буквально прозрел!Спасибо ,бро,долгих лет тебе жизни
Редко пишу комментарии, но тут не удержался) спасибо за такой детальный, а самое главное грамотный разбор, контент усваивается легко, слушать интересно, подписался, пойду смотреть предыдущие ролики)
Коллизия - это совпадение хэшкода у двух разных объектов, а не факт попадания этих объектов в один бакет. Соответственно и логика проверки внутри бакета двухуровневая - когда попали в бакет и бежим по элементам, то сравниваем их сначала по хэшкоду и только если они совпадают то сравниваем по equals. По крайней мере для java это так
Вроде бы автор правильно сказал, коллизия это попадание в один бакет нескольких элементов даже с разными хэшами. А проверка ключей в списке идёт, сначала по хэш коду, потом ссылки (==) и только потом equals(). Java. Но автор конечно, слишком обобщил и упростил
@@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
Как приятно тебя слушать, смотреть твои видео, продолжай в том же духе! Изменено: я настаиваю, чтобы ютуб создал официальный плейлист с 1000 самых понятных видео на ютубе, и твое будет первое!!
Спасибо за твой канал ты лучше всех обьясняешь, честно говоря алгоритмов я сторонился но с твоими обьяснениями задач стало интересно и появилась вера что все возможно изучить, хочется как можно больше видео!
Впервые на канале и удивился как понятно ты объяснил данную тему. Спасибо за тот труд ❤ Было бы круто, если б еще к твоему плейлисту разбора задач с собеседований из бигтеха прибавился и Нетфликс, пожалуйста
Красиво, наглядно, но есть пара нюансов: 1. массив бакетов пересоздается не всегда, когда количество элементов достигает количества бакетов, как правило еще есть такой параметр, как load factor, то есть это управляемая история 2. из-за того, что существует атака на хэш-таблицу тем, что в нее подкладывают элементы дающие коллизию, то в нормальных реализациях hash map есть контроль такой ситуации и в случае её возникновения, то происходит переключение со списка на дерево
Большое спасибо за "уроки", все предельно понятно и интересно изложено 👍 Было бы неплохо увидеть твой ролик про сборщик мусора, частенько спрашивают на собеседованиях )
Выборка по остатку от деления довольно медленная. В большинстве реализаций используются битмаски. Хоть размеры таблиц и становятся кратны степеням двойки, зато логический and выполняется за один такт процессора, вместо шести-десяти у модуля. Также в Java стандартный HashMap уж очень прожорливый, т.к. оборачивает объекты в ноды с ссылками на предыдущий и следующий элемент. Потому для небольшого числа элементов (до 16384) лучше использовать такие вариации, где таблицы ключей и значений представлены одним массивом
Ну про большинство вы всё же загнули, например в libc++ (см. функцию __constrain_hash) на случай степени двойки есть ифик, но допускается произвольное значение __bc, в libstdc++ всегда просто берут остаток от деления (struct _Mod_range_hashing). Насчёт медленности взятия остатка от деления - можете посмотреть на библиотеку fastmod, можно немножко предподсчитать и обойтись умножением и сдвигами (правда, вышеупомянутые реализации так не делают, наверное чтобы ABI не ломать). А по три ссылки на объект - разве ж это по джавовым меркам прожорливый)
Саша спасибо . Видео супер , понятный и простой. Хотелось бы весь курс про Алгоритмов на таком стиле сам я данный момент пытаюсь изучать их но из-за того что у меня нету достаточного знания высшей математики как-то сложно стало понять суть алгоритмов. Был бы рад если в скором времени будете запускать курс.
Хороший контент, только синтаксис у javascript очень древний, 10 летней давности))) В js HashSet это Set, хэш таблица это {} или его более продвинутый вариант - Map Давай еще про структуры данных. Какие бывают разновидности деревьев. Графы и т.д.
Пока только учусь, но кажется, что это какая-то контрольная сумма (не важно какая, главное, чтобы для одного и того же объекта выдавала один и тот же код)
Создал Telegram канал, в котором рассказываю о жизни в Лондоне, работе в Google и подготовке к собеседованиям. Подписывайтесь: t.me/saschalukin
Почему в JavaScript ты используешь var???? Есть же let
Мне бы целый курс в таком стиле по всем структурам данных! 👍
кстати, да, даже платный бы купил
У Седжвика на курсере очень понятный курс
@@mtr-code аналогично. за такой курс готов заплатить!
Karpov courses. Не реклама, сам планирую туда пойти.
Да нахууй надо! Нет, то, что автор старался - это видно. Только его "объяснение" выглядит как рандомный плевок в лицо адекватности. Почему бакетов именно 5, кто должен реализовывать вычисление хэша, для чего эта вся петрушка ВООБЩЕ затеяна... Короче объяснение - лажа. Хуже - только зачитывание на вебку гугленых статей с кислой рожей. Но автор старался. Но цельного, логичного, понятного, непротиворечивого, фундаментального - не получилось...
Александр, я не знаю какой ты программист, но объясняешь очень хорошо. У тебя талант.
Я думаю, пиздатый он программист
Супер! Это лучшее, наглядное и понятное объяснение, даже моя бабушка поняла.🤗
Спасибо, Александр, за ваши подробные объяснения!!!
Я вот вообще ни разу не программист, но разобрался что к чему в выходной и под пивко. Александр, у вас талант!
vidnyskuf)
Не оставляю почти никогда на ютубе комментарии, но это просто фантастическое объяснение, спасибо за проделанную работу!)
Отличное объяснение, было бы здорово услышать про графы и их подтипы, деревья итд)
Это одна из самых важных тем. И объяснение просто фантастическое. Браво. Лайк
Обычно не оставляю комментариев, но здесь не могу не прокомментировать: автор молодец! Очень доступно объяснил материал
Это шикарно. Спасибо огромное, помог как никто. Я и статьи читала и у учителя одного спрашивала, никто так нормально и не объяснил
Прикольный формат, быстро и без лишней информации!
Редко оставляю комментарии, но ваша работа восхищает. Четко, наглядно и по существу. Спасибо!
офигенный задний фон, красивое оформление + понятно и удобно, спасибо за видос!
Отличное видео. Мне как новичку в изучении java очень помогло разобраться в работе hashset и hashmap, а также понять как связаны методы hashCode() и equals() и для чего они нужны, спасибо огромное за твои уроки
Где же ты был 3 дня назад, когда у меня это на собеседовании спрашивали...
Спасибо за крутое объяснение, не понимал эту магию, а теперь понимаю)
Программирую встраиваемые системы больше 30 лет. За это время функция хеша вообще ни разу не понадобилась...
:-)
Понятно и просто. Я в восторге! Буду ждать ещё подобных видео ❤
Спасибо за объяснение темы. Несколько раз вчера прочитал эту тему с примерами кода в уроке на своём обучении. Ничего не понял.
После вашего видео всё становится понятно
Отличное видео, сжато и простым/ доходчивым языком!
Я порекомендовал его всем своим сокурсникам в академии, респект!!! :)
Объяснение реально очень классное, как-то до этого в целом понимал эту структуру, но здесь прям все встало на свои места
Очень хорошо рассказал, спасибо. Будет интересно посмотреть про другие структуры данных. Trees, linked list, graphs.
Огонь!!! 🔥🔥🔥🔥🔥🔥
До этого просто использовал это и не задавался, что там под копотом и как.
А теперь с пониманием буду использовать)))
Спасибо большое за простое и понятное объяснение!!!
Саша, продалжай в том же духе, всё круто!!!
Спасибо за Ваш труд! Кто ясно мыслит - тот ясно излагает!
Ваш канал - это находка!
Огромное спасибо за популяризаторский стиль!!! Теперь поняла, наконец-то, что из себя эта хеш-таблица представляет
Формат крайне удобный и понятный. Спасибо! Стоит продолжать в этом духе.
Больше бы таких видео, где очень доступно и понятно
Да, присоединяюсь к остальным комментариям: очень понятное и грамотное объяснение. В продолжение этой темы можно было бы разобрать способы написания хеш-функций с равномерным распределением для разных типов данных. Это тоже нужная в данной задаче (когда сами делаем хеш-сет) фишка. Очень нравятся твои видео, спасибо и за материал, и за подачу. Хотелось бы побольше :)
6лять, почему бакетов ПЯТЬ?
Это легко. Только выбери хэш алгоритм, а затем выполни нормализацию. От типа нормализации будет зависеть как бклет расти структура при уведичении.
@@ФоксСеннабакетов может быть сколько угодно, все зависит от реализации...
@@yuriytheone так вот как раз вопрос в сравнении хеш алгоритмов
@@ФоксСенна просто решили что 5, это не константа, можешь хоть сразу 100 ебнуть
Редко пишу коммент. Но это того стоит.
Лучшее объяснение hash сетов и таблиц. ❤
Очень понятно! Закрепил теперь точно эту структуру данных! Спасибо
Я очень редко пишу комментарий,но Боже,какое же это крутое видео!Я много читал про хэширование и про хэш-таблицы,но ничего не помогло мне понять это ,как это видео,я буквально прозрел!Спасибо ,бро,долгих лет тебе жизни
Объяснение - мое почтение! Все понятно с первого раза)
Александр, отличное видео, впрочем как все Ваши ролики! Спасибо!
Это объяснение просто афигенно!
На моем курсе это объяснялось очень криво... тут сильно лучше
Только прочитал в книге про хеши, так вот видос тебе. Да какой качественный и понятный
Спасибо ❤
Редко пишу комментарии, но тут не удержался) спасибо за такой детальный, а самое главное грамотный разбор, контент усваивается легко, слушать интересно, подписался, пойду смотреть предыдущие ролики)
Мужик, я ни хера не понял, что ты сказал, но ты мне близок. Ты заговорил и достучался до сердца.
Спасибо моему другу,Жаке. За ссылку на видео.Очень интересно
Большое спасибо. Отличное объяснение. Продолжай!
Коллизия - это совпадение хэшкода у двух разных объектов, а не факт попадания этих объектов в один бакет.
Соответственно и логика проверки внутри бакета двухуровневая - когда попали в бакет и бежим по элементам, то сравниваем их сначала по хэшкоду и только если они совпадают то сравниваем по equals. По крайней мере для java это так
100% true
Согласен 💯
Вроде бы автор правильно сказал, коллизия это попадание в один бакет нескольких элементов даже с разными хэшами. А проверка ключей в списке идёт, сначала по хэш коду, потом ссылки (==) и только потом equals(). Java. Но автор конечно, слишком обобщил и упростил
@@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
Если хеш-код разные то объекты разные, а если хеш-код одинаковые это значит что объекты одинаковые
коротенько и доходчиво. Спасибо за проделанную работу!
Это великолепное объяснение
Очень интересно и понятно рассказано! Отличная подача материала
Спасибо за видео. Было бы здорово увидеть объяснение, как работает функция hashCode() изнутри и как мы можем её переопределять.
Очень приятная и интересная подача материала! Спасибо! Пожалуй подпишусь.
Крутейшее объяснение! Для меня темп был немного быстрым, в основном смотрела на скорости 0.75 :)
Спасибо за ролик! Было очень ясно и доступно объяснено! И не знал что обычный объект js такие чудеса вытворяет!!!!
Хорошее и простое объяснение без математических з**бов. Спасибо большое
Спасибо! 👍Повторение-мать учения!
Ради таких видео я и плачу за интенет
Спасибо!)
Это база. Объяснение потрясающее
Как приятно тебя слушать, смотреть твои видео, продолжай в том же духе!
Изменено: я настаиваю, чтобы ютуб создал официальный плейлист с 1000 самых понятных видео на ютубе, и твое будет первое!!
Лучшее видео по хеш-таблицам.
Спасибо за такое понятное и подробное объяснение! Отличная работа!
Спасибо за твой канал ты лучше всех обьясняешь, честно говоря алгоритмов я сторонился но с твоими обьяснениями задач стало интересно и появилась вера что все возможно изучить, хочется как можно больше видео!
Впервые на канале и удивился как понятно ты объяснил данную тему.
Спасибо за тот труд ❤
Было бы круто, если б еще к твоему плейлисту разбора задач с собеседований из бигтеха прибавился и Нетфликс, пожалуйста
Классно и понятно для новичков))
Тем временем Java где HashSet использует в своей реализации HashMap 🙃
Все так)
еще одна находка для меня! круто, еще с примерами на нескольких языках
Супер! ❤ спасибо! Можно вообще сделать разборы структур данных!? Например, про деревья 😅😊
спасибо автору, легкая и главное понятная подача материала
Как здорово объясняешь ! Я не программист , но все поняла
Спасибо, Саша!
Для меня это лучшее объяснение которое я встречл👍🏻👍🏻👍🏻
Не останавливайся пжл!
Паря не останавливайся - эта годнота нужна, визуализация решает.
Очень круто объясняешь и визуально показываешь 💪
Спасибо большое! Продолжайте в том же духе!
Очень понятно и легко. Спасибо за детальное объяснение!
как раз на днях задался вопросом почему при использование хеш таблиц сложность поиска о(1), и тут твой видос! спасибо
Ай, как хорошо слушать и смотреть! Рад, что алгоритмы показали такое видео)
Оффтопный вопрос: а что за монитор?
Красиво, наглядно, но есть пара нюансов:
1. массив бакетов пересоздается не всегда, когда количество элементов достигает количества бакетов, как правило еще есть такой параметр, как load factor, то есть это управляемая история
2. из-за того, что существует атака на хэш-таблицу тем, что в нее подкладывают элементы дающие коллизию, то в нормальных реализациях hash map есть контроль такой ситуации и в случае её возникновения, то происходит переключение со списка на дерево
Присоединяюсь к желающим разобраться с графами!
Привет! Впервые зашел на твой канал, и это очень крутое объяснение хэш-таблиц! У меня будто прозрение после твоего видео, спасибо!
Спасибо за ролик, давно смотрю ваши выпуски. Очень интересно и понятно.
Спасибо! у тебя талант объяснять)
Большое спасибо за "уроки", все предельно понятно и интересно изложено 👍
Было бы неплохо увидеть твой ролик про сборщик мусора, частенько спрашивают на собеседованиях )
так ничерта же не понятно! я тут в каментах один адекватный?
@@ФоксСеннаа ты не умеешь писать.
Великолепное объяснение! Спасибо Вам!
Большое спасибо за пояснение, еще и на 3 языках)
Отличный контент! Отличная подача! Ждём продолжения.
Вау! Отличный урок! 👍
отлично обьясняешь, спасибо! Только забыл раскрыть смысл почему это hash и почему это set
Вау! Смотрю уже довольно давно и каждый раз полный восторг
Выборка по остатку от деления довольно медленная. В большинстве реализаций используются битмаски. Хоть размеры таблиц и становятся кратны степеням двойки, зато логический and выполняется за один такт процессора, вместо шести-десяти у модуля. Также в Java стандартный HashMap уж очень прожорливый, т.к. оборачивает объекты в ноды с ссылками на предыдущий и следующий элемент. Потому для небольшого числа элементов (до 16384) лучше использовать такие вариации, где таблицы ключей и значений представлены одним массивом
Ну про большинство вы всё же загнули, например в libc++ (см. функцию __constrain_hash) на случай степени двойки есть ифик, но допускается произвольное значение __bc, в libstdc++ всегда просто берут остаток от деления (struct _Mod_range_hashing).
Насчёт медленности взятия остатка от деления - можете посмотреть на библиотеку fastmod, можно немножко предподсчитать и обойтись умножением и сдвигами (правда, вышеупомянутые реализации так не делают, наверное чтобы ABI не ломать).
А по три ссылки на объект - разве ж это по джавовым меркам прожорливый)
Теперь QR код есть ;). Смотрю тебя от когда у тебя было 4 видео на канале.... keep going :)
Спасибо, только благодаря тебе и увидел!
Приятно слушать и смотреть, спасибо тебе!
Крутой контент делаешь, спасибо)
Саша, большое спасибо!
хороший материал
Лучшее и понятное видео по словорям/мапам, которое я видел. Одназначно заслужил подписку и лайкос)
Саша спасибо . Видео супер , понятный и простой. Хотелось бы весь курс про Алгоритмов на таком стиле сам я данный момент пытаюсь изучать их но из-за того что у меня нету достаточного знания высшей математики как-то сложно стало понять суть алгоритмов. Был бы рад если в скором времени будете запускать курс.
материал подан просто: великолепно
Давай такое видео по stack/queue/dequeue
Отлично, отлично, отлично! Огромное спасибо за это видео!
То чувство, когда автор делает видео, только что бы всё это не забыть к своей старости.
Шикарный ролик! Показываю своим ученикам)
Офигенная подача материала огонь🔥🔥🔥🔥
Верни Толю.^.^, Спасибо за полезную информацию)
Хороший контент, только синтаксис у javascript очень древний, 10 летней давности)))
В js HashSet это Set, хэш таблица это {} или его более продвинутый вариант - Map
Давай еще про структуры данных. Какие бывают разновидности деревьев. Графы и т.д.
Саша, привет! Подскажи, пожалуйста, есть ли у тебя наставничество по алгоритмам и задачам или в целом подготовке к тех интервью?
Пока не думал об этом
Хорошо бы затронул перождение списка в дерево - достаточно важная вещь в Hash Java. И часто спрашивают еще про то, как считает hashCode()
Подписываюсь под словами. сам хотел это попросить, но уже есть то я просто лайкну.
Пока только учусь, но кажется, что это какая-то контрольная сумма (не важно какая, главное, чтобы для одного и того же объекта выдавала один и тот же код)
Классная подача
Спасибо за ролик!
Отличное видео, спасибо
Очень круто! Надо прям все под такое поеснние переводить