Алгоритмы на JS #4: хеш-таблицы

  Рет қаралды 16,378

MakeWeb.me

MakeWeb.me

4 жыл бұрын

Виктор Карпов () рассказывает про механизм работы хеш-таблиц.
Важность алгоритмизации в серьезной работе программистом сложно переоценить. На определенном этапе это становится само собой разумеющимся инструментом. И хотя, в зависимости от характера деятельности, веб-разработчик с этим может никогда и не столкнуться. Однако, знание таких вещей дает возможность встать на ступеньку выше и начать создавать ощутимо более сложные и интересные продукты.
Ссылка на «песочницу» - codepen.io/vitkarpov/pen/QWjExmP
Телеграм-канал Виктора: t.me/coding_interviews
⚛️⚛️⚛️
Пройди практический курс "Javascript Fullstack разработчик" от MakeWeb.me.
Детали тут: makeweb.me/course-js-fullstac...
Телеграм для связи по курсу: @makewebchatme
🛍 🛍 🛍
Поддержи проект и получи скидку 5% на 1-ю оплату хостинга/домена Reg.ru.
Промо-код: 948E-53B9-CF98-8204 (вводится во время оплаты услуги).
💬 💬 💬
Присоединяйся к нашему Telegram-чату t.me/makewebme

Пікірлер: 30
@MakewebMeOfficial
@MakewebMeOfficial Жыл бұрын
⚛⚛⚛ Пройди практический курс "Javascript Fullstack разработчик" от MakeWeb.me. Детали тут: makeweb.me/course-js-fullstack-developer Телеграм для связи по курсу: @makewebchatme
@whiteguards43
@whiteguards43 Жыл бұрын
первые два урока понятные, тут слова глотаешь как будто бы
@maximrudenko806
@maximrudenko806 3 жыл бұрын
Видно, что лектор хорошо разбирается в теме, но сама подача для тех, кто уже все это знает и пришел сюда освежить знания.
@user-wu7mg1cu4e
@user-wu7mg1cu4e Жыл бұрын
да видео топ, очень понятно и наглядно
@IlyaKomar
@IlyaKomar 3 жыл бұрын
Плохое объяснение. Ничего толком непонятно. И увеличивать код на полэкрана тоже плохая идея. Для слепых что ли... И быстронабирающийся код тоже плохая идея. Надо же набирать код и рассказывать, что делает каждая строка и почему.
@user-ee2cp5ex4i
@user-ee2cp5ex4i 2 жыл бұрын
молодец . все по делу и понятно.
@user-qg1wi9ce8r
@user-qg1wi9ce8r 3 жыл бұрын
Супер 🙌
@dmitryulanov9395
@dmitryulanov9395 Жыл бұрын
Спасибо большое за объяснение. На классах даже более удобно. Но сама основа алгоритма словаря одинакова что в функции, что в классе
@maximkiselev1554
@maximkiselev1554 Жыл бұрын
для хэштаблиц есть класс Map
@Vnikny
@Vnikny 3 жыл бұрын
А что будет если количество сохраненных пар {ключ, значение} превысит размер массива?
@algoseekee
@algoseekee 3 жыл бұрын
Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме).
@algoseekee
@algoseekee 3 жыл бұрын
Но это касается вычисления индекса массива, а количество пар может быть любым - они просто разложатся в нужные «цепочки».
@user-serji0
@user-serji0 3 жыл бұрын
А мы же по итогу все равно создаем внутри объект с ключами-значениями. Тогда смысл такой реализации? Объясните, пожалуйста
@MakewebMeOfficial
@MakewebMeOfficial 3 жыл бұрын
Внутри мы создаём массив, а не объект. Этот массив максимально равномерно заполняем «цепочками», т.е. другими массивами, каждый элемент в цепочке структурка вида «ключ + значение»: можно так же положить туда массив из двух элементов, если хочется формально отказаться от «простых объектов».
@ruslanaskarov5393
@ruslanaskarov5393 3 жыл бұрын
Очень грамотный лектор
@user-gt6sv6wn7q
@user-gt6sv6wn7q 7 ай бұрын
А в чем разница от обычного использования new Map?
@vladislavkilchevskii2922
@vladislavkilchevskii2922 2 жыл бұрын
Простите, за возможно глупый вопрос, но как в такой таблице удалять дынные по ключу? Сам не нашел ответ
@MakewebMeOfficial
@MakewebMeOfficial 2 жыл бұрын
Можно просто перезаписать значение по ключу, положить туда undefined или null вместо предыдущего значения, и считать это «удалением».
@goodnessman140
@goodnessman140 Жыл бұрын
Я правильно понял что в js хеш-таблицы не нужны потому что можно просто сохранять ключ-значение а объект?
@dmitry9463
@dmitry9463 4 жыл бұрын
Было бы круто увидеть такой же урок по Linked list и double linked list
@algoseekee
@algoseekee 3 жыл бұрын
@Dmitry Z записал, не прошло и полгода (а, нет, прошло) :-)
@user-wu7mg1cu4e
@user-wu7mg1cu4e Жыл бұрын
супер объяснение!
@whiteguards43
@whiteguards43 Жыл бұрын
очень замудренно сказал с 1:28, (определенному ключу поставить соответствие число, в диапазоне который соответствует этому массиву, таким образом мы можем получить по ключу, индекс в этом массиве, куда мы можем положить значение. Потом соотвественно, для того что-бы достать это значение, мы опять же по этому ключу получаем индекс) особо ничего и не понял
@RFOzon
@RFOzon 4 жыл бұрын
Ссылки на песочницу не будет ?
@aleksandrkobelev8868
@aleksandrkobelev8868 Жыл бұрын
Зачем ускорять написание кода? ведь это самое интересное?
@MakewebMeOfficial
@MakewebMeOfficial Жыл бұрын
Не всё готовы ждать набора текста
@mariaruslit310
@mariaruslit310 Жыл бұрын
согласна. ни к чему ускорение и приближение
@SergiySev
@SergiySev 3 жыл бұрын
А почему при добавлении не проверить, есть ли уже такой key, value? зачем приводить такие поверхностные примеры 🤷‍♂️
@SergiySev
@SergiySev 3 жыл бұрын
А этого почему нет на видео? return sum % this.store.length; Да круто, что вот выложили уроки, но цена такому уроку если сам лектор не в курсе очем рассказывает?
@MakewebMeOfficial
@MakewebMeOfficial 3 жыл бұрын
ниже был комментарий про «превышение размера массива»: > Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме). Замечание верное! Этот момент в видео я упустил. Однако, исходя из того, что массив фиксированной длины - в этом весь смысл, я бы не стал говорить, что лектор не понимает о чем говорит 😊 Спасибо за замечание.
Алгоритмы на JS #1: бинарный поиск
16:30
How to Implement a Hash Table in JavaScript
25:39
Ben Awad
Рет қаралды 102 М.
6 важных структур данных
17:25
S0ER
Рет қаралды 89 М.