Azamat
почему?
https://habr.com/ru/company/ruvds/blog/477286/ в 2022 тоже актуально
Agent_RBY_
Ну вообще, аксиос лучше, я согласен Но далеко не в каждом он проекте нужен, т.к. это тоже загромождение бандла
Dewo
Парни привет. А куда обычно выносят енам и интерфесы, вплане, семантически и ахритектурно ? ?
Вадим
Если ты об этом😁😁😁
Agent_RBY_
Парни привет. А куда обычно выносят енам и интерфесы, вплане, семантически и ахритектурно ? ?
Не знаю как на других ЯП, но в TypeScript я делаю так: Енамы уходят в папку static Интерфейсы/типы уходят или в types, или в models. Для реакта интерфейс пропсов у компонента прописываю в том же файле, что и компонент Иногда енамы попадают в types, зависит от того какой это енам и для чего он используется
Dewo
Просто, вот не знаю куда это девать
Igor
А вектор то почему не?
Потому что поиск минимума и удаление обе опeрации O(N)
Пашок🗽
Парни привет. А куда обычно выносят енам и интерфесы, вплане, семантически и ахритектурно ? ?
енамы к моделям, интерфейсы к их реализациям) это или сервисы или доменное
Пашок🗽
отдельными файлами всё
Алексей
Igor
То есть целиком получается О(n²)?
Смотря что он делать собрался, не совсем понятна постановка, какие требования к структуре.
Vyacheslav
А чем тебя set не устроил? Опиши более подробно какие операции ты хочешь делать, если просто запихать числа а потом доставать два минимальных элемента, то это куча, если удалять по значению, то (multi)set
Сет не устроил тем что он за меня все делает Это черезжопная реализация кодирования Хаффмана Там должна быть куча Но куча будет на следующем уроке А сейчас нужно использовать массив )))
Donovan
Решил питон начать учить. Не можете подсказать, где есть бесплатные уроки?
Sergey
Решил питон начать учить. Не можете подсказать, где есть бесплатные уроки?
согласен с предыдущим, из онлайн ресурсов бесплатных - степик один из самых толковых
Donovan
Курсов много
Donovan
Не знаю, какой именно. Авторы разные.
Igor
Поколение пайтон бери ;) а вообще любой везде будут плюсы и минусы кстати в офф документации тоже есть обучалка
Donovan
Спасибо
Dima
По питону относительно быстро там проходятся курсы
Warox
То есть целиком получается О(n²)?
Не получается О(n²) Получается О(n)
Igor
Не получается О(n²) Получается О(n)
если он в конечном итоге удалит все значения то будет как раз O(N^2)
Warox
если он в конечном итоге удалит все значения то будет как раз O(N^2)
Хз Я по условию вижу : Найти два минимума Удалить их Добавить их суму в масив
Igor
Хз Я по условию вижу : Найти два минимума Удалить их Добавить их суму в масив
Ну логично предположить что это не одноразовая акция ;)
Igor
иначе весь смысл телодвижений теряется
Igor
да действие поиск минимума + удаление + добавление будет O(N) дальше инсинуации ;)
Warox
Ну логично предположить что это не одноразовая акция ;)
ну сет не решает проблему поиск все равно O(n) если это сделать n раз получается n^2 в любом случае
Warox
мы говорили о C++
там другие сеты ?) не хештаблицы в нутри?
Igor
там другие сеты ?) не хештаблицы в нутри?
да хэштаблица у них это unordered_set
Igor
там красночерное дерево те там минимум максимум можно за O(1) полуать
Igor
если не ошибаюсь
Igor
может быть за логарифм но вроде он хнаит крайний элемент
Warox
жесть как сложно с названиями этих хештаблиц везде -_-
Igor
жесть как сложно с названиями этих хештаблиц везде -_-
ну хэштаблица очень дорогая хрень и в быстрых языках за частую NlogN получается дешевле чем константа в хэштаблице
Vyacheslav
жесть как сложно с названиями этих хештаблиц везде -_-
Вот вот И сиди разбирайся тут, чо там под капотом у этих контейнеров)
Igor
Вот вот И сиди разбирайся тут, чо там под капотом у этих контейнеров)
а зачем? ;) тебе нужно знать сложность операций ;) она указанна в доках ;) а что под капотом может менятся со временем
Warox
по большому счету тоже самое что просто сортануть от большего к меньшему и с конца пройти в с начало
Warox
тоже полчиться n*log(n) в среднем
Vyacheslav
а зачем? ;) тебе нужно знать сложность операций ;) она указанна в доках ;) а что под капотом может менятся со временем
Ну с одной стороны интересно же как оно работает А с другой - для каждого языка названия плавают и получается полезнее знать сам алгоритм чем названия контейнеров
Igor
я не отрицаю что знать алгоритм полезно, но обычно не критично, ну и такой большой выбор контейнеров есть не везде. В большинстве языков "за не имением гербовой пишем на обычной" ;)
Vyacheslav
ну сет не решает проблему поиск все равно O(n) если это сделать n раз получается n^2 в любом случае
Вот по плану там такой и должен получится Когда поиск по n длинному массиву нужно будет повторить n-1 раз
Warox
Вот по плану там такой и должен получится Когда поиск по n длинному массиву нужно будет повторить n-1 раз
ну вот деревья решают поиск за лог(н) или вообще за о(1) в случае минимума (не факт что есть ссылка - хз но не хуже чем лог (н)) удаление будет лог(н) добавление лог(н)
Igor
Народ кстати часто забывает что сет это дерево в плюсах, и начинает городить свое дерево при решении алгоритмических задач. Все привыкли что сет это хештаблица ;)
Vladislav
Не получается О(n²) Получается О(n)
А какая разница между этими штуками? В скорости да, но смысл
Warox
А какая разница между этими штуками? В скорости да, но смысл
в жоре ЦПЮ нуууу возьбми 10 лям елементов и прикинь вместо 10кк итераций будет 100кккк
Igor
А какая разница между этими штуками? В скорости да, но смысл
Зимой лучше квадрат летом лучше линейный алгоритм
Andrii
там другие сеты ?) не хештаблицы в нутри?
Ну... даже хештаблица это O(n/m) где m это размер хештаблицы, и если m > n, то мы получаем O(1). Вообще, обычный бинарный поиск это O(log n), и хештаблицы часто используются в том числе и потому, что они превосходят бинарный поиск по производительности за счёт выбора m.
Andrii
А какая разница между этими штуками? В скорости да, но смысл
Маляр Шлемиэль подрядился красить пунктирные осевые линии на дорогах. В первый день он получил банку краски, поставил её на дорогу, и к концу дня покрасил 300 метров осевой линии. «Отлично! — сказал прораб. — Быстро работаешь!» — и заплатил ему копейку. На следующий день Шлемиэль покрасил 150 метров. «Мда, это, конечно, не так здорово, как вчера, но приемлемо», — сказал прораб и заплатил ему копейку. На следующий день Шлемиэль покрасил 30 метров. «Всего лишь 30! — заорал прораб. — Это никуда не годится! В первый день было в десять раз больше! В чём дело?» «Ничего не могу поделать, — говорит Шлемиэль. — Каждый день я ухожу всё дальше и дальше от банки!»
Andrii
поиск по хештаблице о(1)
Какой у тебя размер хештаблицы?
Warox
Какой у тебя размер хештаблицы?
зависит от количества елементов, очевидно же
Asiman
зависит от количества елементов, очевидно же
А разве размер не задаётся заранее?
Warox
А разве размер не задаётся заранее?
она ребалансировку делает что бы избегать большого количества колизий
Asiman
она ребалансировку делает что бы избегать большого количества колизий
Но и ребалансировка должна быть не частой. Иначе о(1) не гарантируется
Warox
Но и ребалансировка должна быть не частой. Иначе о(1) не гарантируется
ребалансировка делается при втсавке поиск никак не связан с этим о(н) это в среднем если добавить милион едениц то будет о(н) но это конечно вырожденный кйс
Andrii
она ребалансировку делает что бы избегать большого количества колизий
А ребалансировка как часто и сколько времени занимает?
Warox
А ребалансировка как часто и сколько времени занимает?
мы же о поиске говорим ;) ты похоже потерялся
Andrii
Просто под хештаблицами много что понимается.... В целом если у нас только поиск, можно достичь O(1). Но это может усложнить вставку.
Andrii
И часто в алгоритме идут рядом поиск и вставка (если элемент не найден)
Warox
И часто в алгоритме идут рядом поиск и вставка (если элемент не найден)
если тебе нужно втсаивть елемент если он не найден значит тебе и не нужно его искать, а просто вставлять можно, но нужна таблица которая не разрешает дубликаты
Andrii
если тебе нужно втсаивть елемент если он не найден значит тебе и не нужно его искать, а просто вставлять можно, но нужна таблица которая не разрешает дубликаты
Не совсем, например, мы вставляем в set уже проверенные вершины. Если вершина уже есть, то мы ничего не делаем. А если её нету, то добавляем и обрабатываем.
Warox
Наверное можно придумать кейсы когда есть смылс искать
Igor
Нет смысла придумывать кейсы пока мы не говорим о конкретной реализации контейнера
Andrii
И конкретная реализация алгоритма
Vyacheslav
Всего один вопрос - обсуждений на целый день )
Igor
Все лучше чем про мертвыйх котиков ;)
Иван
Добый день, коллеги. Может кто-нибудь дать ссылку на материал по правильному проектированию БД на NoSQL (в частности MongoDB). Раньше использовал только MySQL и чтобы не наломать дров, хочется что-нибудь почитать по архитектуре NoSQL баз данных, спасибо
Andrii
Просто NoSQL это и документ-ориентированные, и графовые, и колоночные, и т. д. т. т. п. и др. и пр. Тяжело дать общие советы в таком зоопарке.
Иван
это да)
Иван
наверное все таки лучше курс найти по этой теме
Andrii
https://www.mongodb.com/developer/article/mongodb-schema-design-best-practices/