Структуры данных в JavaScript | Odessa Frontend Meetup #13
Ғылым және технология
Алгоритмы и структуры данных - это фундаментальные основы в программировании. Но, при изучении JavaScript, на это не хватает времени. Прогрессивные фрейморки высокоуровнего языка богаты функциональностью и оптимизацией, но достаточно ли этого? Николай Громов рассказывает как он понял, что алгоритмы никуда не ушли и почему понадобились структуры данных, а так же сравнивает их производительность на JavaScript.
Слайды - www.slideshare.net/odessafron...
Поддежка - ab-soft.net/
OdessaFrontend - odessafrontend.com
#odessafrontend #cтруктурыданных #js
Пікірлер: 63
Докладчик помпезный! Все сходу улавливается
@ruslanvolovik2745
2 жыл бұрын
Это ужасно
Обалденный доклад! Спасибо :))
@ruslanvolovik2745
2 жыл бұрын
Плохой доклад, это ужасно
Годный доклад за слайды и ссылки отдельный респект!
Шикарный доклад! Спасибо!
Понял смысл структур данных, оч хороший докладчик
console.log(`Hello ${vivas[user.group]}!`); вместо console.log(`Hello ${user.group}!`); как написано на слайде 14:46
Очень понравился доклад. Было пару моментов, где слишком быстро проскочили про бинарные деревья, но из-за ограничения по времени нельзя придраться к этому
@ruslanvolovik2745
2 жыл бұрын
Это ужасно, придраться можно к многому
Офигенный докладчик и сам доклад. На многих собесах трясут по алгоритмам, так что нужно их изучать
@ruslanvolovik2745
2 жыл бұрын
Обычное заблуждение, докладчик не компетентный
@constantin8016
Жыл бұрын
@@ruslanvolovik2745 ну, ты то точно спец))
@ruslanvolovik2745
Жыл бұрын
@@constantin8016 было с чем сравнивать, не с пустого места..
@constantin8016
Жыл бұрын
@@ruslanvolovik2745 странно..но здесь 50% от всех комментариев твои..и все с притензиями или негатив))
@ruslanvolovik2745
Жыл бұрын
@@constantin8016 так и есть, я не согласен с автором данного вида, так как есть расхождение
find - это не только jquery :)
В методе push не константное время, а амотризированое константное потому что интерпретатот выделяет конкретный кусок памяти под его и что будет если мы дойдем до такого момента что этот кусок памяти закончится и произойдет полное копирование всего массива на уже другую части памяти но с большим количеством свободных ячеек для дальнейших действия. В данном случае будет линейная сложность И так на самом деле со многими методами
отлично!!
@ruslanvolovik2745
2 жыл бұрын
Ужасно
Двунаправленный линкед лист очень хорошо приименим в селектах, градах, когда нужно сфокусированную строку двигать вверх или вниз с помощью клавиатуры, плюс если такой список замкнут (когда последний елемент ссылается на первый) то облегчает перходы с начала в конец и обратно.
@ruslanvolovik2745
2 жыл бұрын
Для таких целей лучше использовать конечный автомат
Методы решения колизий - самые популярные способы решения: это открытая адресация и метод цепочек Если написать аrray[1000] а пустые значения, но все же это константное время
Очень круто!
не понял на 15:00
Подскажите, почему Николай назвал object, map и set как hash map? Почему именно так, а не ассоциативным массивом?
@ruslanvolovik2745
4 жыл бұрын
Это синонимы по моему, потому что под капотом в обьекта работает хеш функция, а с ней работает хеш таблица соответственно. Это все же статический массив в памяти ну и дальше очевидные вещи. Это просто синонимы
@Erudite.
3 жыл бұрын
Потому, что нет такой структуры данных как ассоциативный массив. Массив это последовательно идущие друг за другом ячейки памяти одинаковой размерности. А хеш таблица это структура которая состоит из ключа и привязанного к нему значения.
Почему списки это не часто используемые вещи? Так как стек, очередь построена именно на них - точнее можно создать
На самом деле использование if else замедляет испонение кода - устройство процессора ответ
Тайм код бы
Алгоритмы строяться при помощи структур данных, а структуры при помощи алгоритмов. Вот почему это нераздельные вещи
Он сказал Bisoft или Ubisoft? Если второе, то у меня один вопрос: когда починят chash в rainbow 6???
А почему оценки по памяти не было и их разновидности. Оценка по времени это T(n), а не O(n) это совершенно разные вещи, О(n) показывает суммарное количество инструкций процессора - итераций например, для его полного оканчания. Почему не упоминалась тетта, омега? T(n) описывает не полностью алгоритм, а только его часть - например итерации в сортировках. То что оно делает воовщем. Не нужно в этот момент учитывать "левые" инструкции, например присвоение, инкремент, сложение и т.д
22:34 в смысле find это jQuery?) [1, 2, 3, 4, 5].find(num => num === 3)
@dev_insider
3 жыл бұрын
это ROFL
Константная сложность это не совсем одна операция потому что на уровне языка это возможно одна, но и может и две - смотря какие. На уровне процессора, самого языка тоже есть особенности и это явно не одна. Нужно уточнять, это не правильно
Что то руслана в комментах порвало)
@ruslanvolovik2745
2 жыл бұрын
Бывает, человек не компетентный
Ебейший доклад;)
Некоторые задачи не решаються проще чем експотенциальная сложность. Это на самом деле применимо
Рассказали бы про биг о как-то по другому, а не как все потому что все одно и тоже. Почему например не дать определение как верхняя граница при бесконечно увеличиваемом аргументе(длинна массива)
Якщо хочете детально вивчити системи даних тоді користуйтеся іноземними ресурсами, в країнах СНГ інформація надто поверхнева
Стэк, очередь - линейные структуры, стаканчик же и так понятно
Очевидно что не на спайдерманки, все знают что на в8
Чтобы скласть пазл, можно и за 3 действия - если 1 уже фиксировый, но так и есть
Про хештейбл всё не правильно объяснил.
@ruslanvolovik2745
2 жыл бұрын
Естественно
А О(nlogn) это по сути не "цикл в цикле"
@ruslanvolovik2745
2 жыл бұрын
@@Maksim-nu8hb слушал как было на самом деле, время скинь
В видно рассказываеться про бинарное дерево поиска а не бинарного дерева
Странный доклад, много всего очевидного, многие реализации как он и сам сказал сделаны на коленке.
Не по парадигмам учебник, а курс мат анализа первый курс института. Если это закроешь, то допка -> комисия -> ... Учебник конечно же проще закрыть
Вай, как плохо :( Плахой докладчик, а тема - хароший.
@__kawaii
11 ай бұрын
Что не так?
Если человек не знает как минимум структуры данных то его точно не нужно брать - это очевидные вещи. Все просто он знает 20 фреймворков, особенно из фронтенда - потому что он знает что за их и красивое резюме заплатят деньги, зачем мне учить тупые алгоритмы и структуры если им 1000 лет в обед
Зачем задавать такие тупые вопросы?
@bkhtrv
2 жыл бұрын
так это ж ты спрашиваешь, сам себе и ответь
@ruslanvolovik2745
2 жыл бұрын
@@bkhtrv это не тупые вопросы, это ошибки и заблуждения докладчика
Какие же тупые примеры, почету не показать реальные примеры - ты же сеньйор, а не трейни