Спасибо, Роскомпозор за антимонопольные ивенты👍
Благодаря вашим кривым рукам крупные провайдеры раз в две недели отваливаются на сутки-двое, а мелкая шушара, которая не считает себя обязанной исполнять ваши идиотские решения, стабильно работает👍
На самом деле, смешно - мне приходится подключить запасной интернет в столице субъекта Центрального Федерального Округа. Не в середине Сахары, не в непроходимых болотах Сибири, не на диких островах Полинезии, даже не в отсталой Гейропе... И все ради того, чтобы я не посмотрел в ютубчике, как обзывают Великого Геостратега Императора Человечества.
Благодаря вашим кривым рукам крупные провайдеры раз в две недели отваливаются на сутки-двое, а мелкая шушара, которая не считает себя обязанной исполнять ваши идиотские решения, стабильно работает
На самом деле, смешно - мне приходится подключить запасной интернет в столице субъекта Центрального Федерального Округа. Не в середине Сахары, не в непроходимых болотах Сибири, не на диких островах Полинезии, даже не в отсталой Гейропе... И все ради того, чтобы я не посмотрел в ютубчике, как обзывают Великого Геостратега Императора Человечества.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1🫡1 1
LEETCODE НЕ НУЖОН
Для тех, кто не знает:
LeetCode.com - популярная платформа-решебник по программированию. Ходят слухи, что туда даже сливают вопросы с собесов БигТеха, по которым можно задрочиться и пролезть без мыла на $300к/наносек.
📯 хуйней не майтесь
Профессиональные спортсмены редко бывают здоровыми, потому что здоровье - это баланс, а не развитие одной конкретной мышцы. Для программиста ценнейшим навыком является понимание business value - чего хочет заказчик. А он хочет:
1) Лучший продукт
2) За минимум денег
И если вы умеете найти баланс между этими двумя вещами, на хардскиллы никто и смотреть не будет.
📯 Дрочить задачки - не достижение
Так как первый пункт - всем известная информация, если у вас в портфолиоТОЛЬКО Литкод, вас даже рассматривать не будут.
📯 Когда можно литкодить (под одеялом темной ночью)
И только после принятия двух пунктов выше, можно поговорить и о плюсах (а они есть).
+ Во-первых, для разработкижопы привычки программировать постоянно новичку будет полезно хотя бы политкодить по часику в день. Но только до момента, когда почувствуете силу начать заниматься настоящим проектом.
+ Во-вторых, рассматривая решения ноулайферов из топ 0.1% memory, можно подхватить полезные привычки. Ну там, кэшировать некоторые вызовы, например.
📯 Акак какать?
🪕 – Ни дня не учился, сразу дали кнопки красить😁
😭 – я что, зря 300 задач решал все это время?
Для тех, кто не знает:
LeetCode.com - популярная платформа-решебник по программированию. Ходят слухи, что туда даже сливают вопросы с собесов БигТеха, по которым можно задрочиться и пролезть без мыла на $300к/наносек.
Вся эта "олимпиадщина" ни к чему, кроме высасывания дополнительных 0.03% процентов быстродействия не ведет. Достижение идеального результата в стерильных условиях - то, с чем вы ни разу не столкнетесь в реальной работе.
Профессиональные спортсмены редко бывают здоровыми, потому что здоровье - это баланс, а не развитие одной конкретной мышцы. Для программиста ценнейшим навыком является понимание business value - чего хочет заказчик. А он хочет:
2) За минимум денег
И если вы умеете найти баланс между этими двумя вещами, на хардскиллы никто и смотреть не будет.
Так как первый пункт - всем известная информация, если у вас в портфолио
Так что, даже если Top Questions from Company_Name выучишь наизусть, на собес для начала нужно попасть...
И только после принятия двух пунктов выше, можно поговорить и о плюсах (а они есть).
+ Во-первых, для разработки
+ Во-вторых, рассматривая решения ноулайферов из топ 0.1% memory, можно подхватить полезные привычки. Ну там, кэшировать некоторые вызовы, например.
Не сидите слишком долго над одной и той же задачей, помните, что уровень сложности зачастую расставлен произвольно. Полчаса ничего в голову не идет - бросили, пошли дальше. И будет вам польза.
😭 – я что, зря 300 задач решал все это время?
Please open Telegram to view this post
VIEW IN TELEGRAM
ВОТ ВЫУЧУ ЯЗЫК Х И УСТРОЮСЬ НА РАБОТУ. ВЕДЬ ТАК?
📯 Нет, не так :(
В современном мире мало просто уметь писать код, необходимо понимать, где и как он используется, знать основные библиотеки - готовые части программы, написанные под определенную задачу. Можно, конечно, писать все с нуля, но лично меня потряхивает от перспективы потратить две недели на то, чтобы просто нарисовать шар на мониторе. И дядю, который будет за это тебе платить, тоже.
📯 А что еще нужно знать?
Фреймворк - это, грубо говоря, очень большая библиотека (или даже несколько), выполняющая полный спектр задач в своей области. Их учить досконально не нужно, но знать, какие есть (2-3 по теме), когда какой использовать и для чего.
Движок (или платформа) - это дальше, очень большой фреймворк. Ничем радикально он не отличается, только размером и звучит модно. В основном, это название звучит в игровой индустрии. Для ААА-игр пишутся свои движки, разумеется, но в большинстве проектов используют готовые (Unity, UE, Godot и пр.) Движок предоставляет готовые инструменты для отрисовки, анимации, физики и всего того, что точно будет нужно в любом проекте.
📯 Ну и архитектура, разумеется
🫡 – Учиться, учиться и еще раз учиться
В современном мире мало просто уметь писать код, необходимо понимать, где и как он используется, знать основные библиотеки - готовые части программы, написанные под определенную задачу. Можно, конечно, писать все с нуля, но лично меня потряхивает от перспективы потратить две недели на то, чтобы просто нарисовать шар на мониторе. И дядю, который будет за это тебе платить, тоже.
В итоге, при большом усердии, язык можно выучить за месяц-два на достаточном уровне. Но чтобы устроится на работу, нужен, в среднем, год. Делайте выводы.
Фреймворк - это, грубо говоря, очень большая библиотека (или даже несколько), выполняющая полный спектр задач в своей области. Их учить досконально не нужно, но знать, какие есть (2-3 по теме), когда какой использовать и для чего.
В итоге, программист занимается своей работой, а не изобретением колеса.
Движок (или платформа) - это дальше, очень большой фреймворк. Ничем радикально он не отличается, только размером и звучит модно. В основном, это название звучит в игровой индустрии. Для ААА-игр пишутся свои движки, разумеется, но в большинстве проектов используют готовые (Unity, UE, Godot и пр.) Движок предоставляет готовые инструменты для отрисовки, анимации, физики и всего того, что точно будет нужно в любом проекте.
Кроме, собственно, умения написать код нужно уметь написать его нормально. Для этого требуется SOLID, Clean Code, паттерны и прочие умные слова, которые сделают тебя из разнорабочего уважаемым инженером и сеньором-помидором.
🫡 – Учиться, учиться и еще раз учиться
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡4❤1
Очень положительные впечатления от стрима, много классных ребят пришло :)
Закрыл Mindustry на 15%, будем продолжать через неделю😋
Закрыл Mindustry на 15%, будем продолжать через неделю
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
РЕЦЕПТ ПРАВИЛЬНОГО ЮНИТ-ТЕСТИРОВАНИЯ
📯 Кто такой этот ваш модульный тест?
Вот написали мы, допустим:
А как мы узнаем, что функция работает правильно?🤔
Напишем следующее:
Но это, конечно, только два частных случая, а нам бы надо положительное тестирование, негативное, пограничные случаи, и вообще ПОЛНОЕ ПОКРЫТИЕ!!😱 😱 😱
📯 Да, если мы хотим никогда не выпустить продукт🥰
Просто по-человечески завидую таким заказчикам, которые требуют полного покрытия, ведь они могут заплатить своим программистам в два раза больше без видимого результата.
📯 Так что теперь, совсем без юнит-тестов?
1-2 позитивных сценария, 1-2 негативных, граничные случаи. И только если через этот модуль проходят изменения. В противном случае, тестим руками и не тратим время.
🤣 – пусть QA тестируют, я свой код даже не запускаю
🤔 – ниче не понял, модуль же это |-3| = 3
Модульные (Unit-) тесты – те, которые проверяют функциональность отедльно взятого компонента программы в изолированной среде.
Вот написали мы, допустим:
int sum(int a, int b) => a + b;
А как мы узнаем, что функция работает правильно?
Напишем следующее:
bool test()
{
return sum(1, 2) == 1 + 2
&& sum(2, 3) == 2 + 3;
}
Но это, конечно, только два частных случая, а нам бы надо положительное тестирование, негативное, пограничные случаи, и вообще ПОЛНОЕ ПОКРЫТИЕ!!
Пример, конечно, утрированный, но на самом деле, если мы хотим добиться 100% coverage, так и получится - код тестов в пять раз больше кода программы.
В зависимости от бюджета и времени, средняя рекомендация – покрыть от 0% до 20% в самых значимых и/или неочевидных участках кода.
1-2 позитивных сценария, 1-2 негативных, граничные случаи. И только если через этот модуль проходят изменения. В противном случае, тестим руками и не тратим время.
🤣 – пусть QA тестируют, я свой код даже не запускаю
🤔 – ниче не понял, модуль же это |-3| = 3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4🤣2👌1
Wild Russian GameDev Mentor
Как и обещал, загружаю результат прогона >100 часов симуляции со вчерашнего стрима. Разумеется, эта дура ничему не научилась. Можно, конечно, подождать еще недельку, но вряд ли это было бы сильно полезно. Максимум, чего можно добиться в такой конфигурации…
Media is too big
VIEW IN TELEGRAM
Результат 12-часового прогона новой сеточки, сделанной на втором стриме. На время в углу не смотрите, я его перезапускал. Какие-то потуги наблюдаются в правом нижнем углу, но...
Но, в остальном, она ничему не научилась👁🗨
До третьего стрима попробую в течение недели позапускать в фоне, может, что и выйдет. Все-таки, время должно было увеличиться из-за полностью случайных мутаций🧬. В крайнем случае, попробуем объединить все 900 котов в одну комнату, чтобы обучение шло в 9 раз быстрее. По крайней мере, в теории.
В любом случае, пока я верю, что нужно просто немного потерпеть, и здравое зерно начнет проступать.
Но, в остальном, она ничему не научилась
До третьего стрима попробую в течение недели позапускать в фоне, может, что и выйдет. Все-таки, время должно было увеличиться из-за полностью случайных мутаций🧬. В крайнем случае, попробуем объединить все 900 котов в одну комнату, чтобы обучение шло в 9 раз быстрее. По крайней мере, в теории.
В любом случае, пока я верю, что нужно просто немного потерпеть, и здравое зерно начнет проступать.
Please open Telegram to view this post
VIEW IN TELEGRAM
НУЖЕН ЛИ ИНГЛИШ ЛАНГУАГЕ ДЛЯ ПРОГРАММИСТА?
📯 Да 👍
Сожалею. Все так. Учи английский.👋
Так что, если хочешь найти решение своей проблемы, поделиться написанным в интернете, прочитать описание библиотеки или вообще ЧТО УГОДНО, то будь добр. Да, на русском есть много материалов, но сильно меньше, чем на английском.
📯 Но не все так плохо
Так что прекращай придумывать отговорки, что тебе не дано и не нравится.
Ну и делитесь своими страйками в комментариях👑 👇
🔥 – если уже успел продлить свой ударный режим в Duolingo
🪕 – Я РУССКИИИЙ, ВСЕМУ МИРУ НАЗЛОООО~
Сожалею. Все так. Учи английский.
Вот здесь написано, что ~половина интернета написано на английском. Русский, кстати, долгое время был вторым и занимал 6% (ставлю, что это кто-то оцифровал Войну и Мир📕 ).
Так что, если хочешь найти решение своей проблемы, поделиться написанным в интернете, прочитать описание библиотеки или вообще ЧТО УГОДНО, то будь добр. Да, на русском есть много материалов, но сильно меньше, чем на английском.
Если ты не планируешь читать Шекспира в оригинале, а только документацию, достаточно будет B1 - того уровня, до которого дотянет и Mr. Зеленая Сова. При должном усердии, разумеется.
Так что прекращай придумывать отговорки, что тебе не дано и не нравится.
Ну и делитесь своими страйками в комментариях
🔥 – если уже успел продлить свой ударный режим в Duolingo
Please open Telegram to view this post
VIEW IN TELEGRAM
ДЖУН, НЕ СМЕЙ ПИСАТЬ ПЕТ-ПРОЕКТЫ
📯 Пет-проекты – это что за зверь?
Ну если из любви, то что в этом плохого и..
📯 Чем же он отличается от коммерческого?
Вот ты в каком случае чище прибираешься, когда придут гости или для себя? Правильный ответ:для себя ты вообще почти не прибираешься . По крайней мере, это справедливо для большинства людей.
📯 Я безработный июнь (ну джун, поняли?) , где же мне взять коммерческий проект??!?
А с чего ты взял, что за коммерческий проект тебе должен кто-то платить?))0) 🤪 И вообще, что он должен быть как-то связан с деньгами. Это все 🔥 капиталистическая пропаганда🔥 заблуждения.
Ведь, как я писал выше, основное отличие заключается в доделанных 80% работы, которые скучные, душные, сложные, и вообще лень, потом, завтра. А для выпуска проекта эти 80% хочешь-не хочешь, а придется сделать. Так что вместо замусоривания своего гита очередным (ДА СКОЛЬКО, СУКА, МОЖНО) клоном Flappy Bird,пойди на завод придумай нормальный проект. А если призовешь друзей на арт/звук/сюжет, то это будет уже работа в компании🤗
📯 И как бы он мог выглядеть?
Выписывай все идеи, которые соответствуют трем критериям:
Потом выбери любимый и.. (наберите воздуха в грудь)
🫵 ЗАКОНЧИ И ВЫЛОЖИ 🫵 .
С таким портфолио тебя с руками оторвут на вкусненькую начальную должность. А, может, ты уже и не захочешь, а пойдешь в инди или продашь своего ребенка(программу имею ввиду!!!) за баснословные 3₽.
🤓 – Понял тебя, пойду писать Flappy Bird (я хочу, чтобы админ плюнул мне в лицо)
🪕 – Понял тебя, пойду писать (столько воды, аж в туалет захотелось)
"Домашний" проект – такой, на котором программист отдыхает от основной работы. Соответственно, он делается не за деньги и не ради хайпа, а из🥵 чистой бескорыстной любви🥵 .
Ну если из любви, то что в этом плохого и..
Вот ты в каком случае чище прибираешься, когда придут гости или для себя? Правильный ответ:
В том и главная разница: "Это никто не проконтролирует, значит, можно не стараться". Поэтому почти все петы – неюзабельный информационный мусор. Попадаются жемчужины, но это исключения.
На самом деле, коммерческим проект считается, если он просто выложен в Steam/Google Play/App Store/ваш вариант. Да, даже если бесплатно. Хитро, правда?
Ведь, как я писал выше, основное отличие заключается в доделанных 80% работы, которые скучные, душные, сложные, и вообще лень, потом, завтра. А для выпуска проекта эти 80% хочешь-не хочешь, а придется сделать. Так что вместо замусоривания своего гита очередным (ДА СКОЛЬКО, СУКА, МОЖНО) клоном Flappy Bird,
Выписывай все идеи, которые соответствуют трем критериям:
1. Ты или твои знакомые сами бы стали пользоваться твоим приложением – иначе ты просто не сможешь определить требования.
2. Это нельзя назвать клоном чего-то – наш уровень, как минимум, "клон чего-то, НО ЕСТЬ ЕЩЕ ...". Тогда будет легче с АП, да и вообще не стыдно показывать.
3. Ты можешь это сделать в течение трех месяцев – тогда через год-полтора как раз закончишь проект. Всегда так получается.
Потом выбери любимый и.. (наберите воздуха в грудь)
С таким портфолио тебя с руками оторвут на вкусненькую начальную должность. А, может, ты уже и не захочешь, а пойдешь в инди или продашь своего ребенка
🤓 – Понял тебя, пойду писать Flappy Bird (я хочу, чтобы админ плюнул мне в лицо)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓3❤2 2💋1
Wild Russian GameDev Mentor
Результат 12-часового прогона новой сеточки, сделанной на втором стриме. На время в углу не смотрите, я его перезапускал. Какие-то потуги наблюдаются в правом нижнем углу, но... Но, в остальном, она ничему не научилась👁🗨 До третьего стрима попробую в течение…
Спустя 72 часа обучения, сетка наконец-то научилась.. Да ничему она не научилась ☹️
Так что сегодня напишем Гугл-динозаврика😊 🦕 и проверим, вдруг она вообще необучаемая. А также раскрасим немного котиков + сольем их в один пул.
Начинаем прямо сейчас!!!
Так что сегодня напишем Гугл-динозаврика
Начинаем прямо сейчас!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3 1
UML или ЗАЧЕМ ПРОГРАММИСТУ РИСОВАНИЕ
Вчера закончил большую курсовую, где пришлось сначала написать код, а потом КАЖДУЮ СТРОЧКУ отобразить на схеме...
Это могло бы заставить меня ненавидеть графические нотации, но ваш админ невероятно объективен и проницателен, поэтому ненавидеть я стал только российскую систему образования. И еще решил написать этот пост, чтобы студенты понимали, почему UML полезно изучать, а преподаватели.. ну тоже.. а то пихают куда не попадя свои эти.. из трех букв......
📯 Вначале, как всегда, по определениям🤓
Выглядит примерно как на картинке. Тут диаграмма классов. Из важных есть еще диаграммы последовательности и прецедентов (на любителя).
Причина популярности именно UML заключается в том, что основной посыл этой нотации: "Вот тебе шесть стрелочек и пять правил, остальное сам придумаешь". Благодаря широкой свободе действий, получается легко и непринужденно выделить самое важное и отобразить на схеме без лишнего мусора🗑 . При этом любые извращения особенности, критические для понимания системы, можно снабдить дополнительными подписями.
📯 Ну и на кой хрен мне рисовать, я программистом нанимался?👨🎨
Во-первых, я уже говорил в первом пункте, что можно выделить самое важное. Теперь я говорю, что НУЖНО научиться выделять в коде важные части. И рисование схемы своего кода – отличный способ развить абстрактное мышление, начать потихонечку думать о том, что ты пишешь, о том, как выглядит твоя система и о том, не получается ли у тебягов-спагеттина.
Во-вторых, фраза "Я ему все объяснил, и даже картинку нарисовал!" свидетельствует о максимальной степени разжевывания. Наш мозг не создан понимать тексты, он создан видеть абстракции и искать закономерности. Так что та же самая система будет понята быстрее и глубже, если изобразить ее графически.
В-третьих (в дополнение к во-вторых), графические нотации – лингва франка среди разработчиков + бизнес аналитиков + менеджеров + всяких маркетологов и прочих. Да и, в большинстве, они интуитивно понятны, так что особое обучение почти не требуется. Таким образом, вы сможете наглядно показать начальнику, почему вам требуется еще две недели накофе + покурить тотальный рефакторинг.
📯 Так что теперь, все документировать?
Ну конечно нет, но, как минимум, пару небольших проектов попытаться таким образом отобразить, потренироваться с этим работать. А если у вас на проекте есть документация, то там обязательно должны быть UML-диаграммы.
🤡 – уже умею рисовать, но пока только грим :(
🪕 – я, конечно, не художник, но ебальник админу бы разукрасил😁
Вчера закончил большую курсовую, где пришлось сначала написать код, а потом КАЖДУЮ СТРОЧКУ отобразить на схеме...
Это могло бы заставить меня ненавидеть графические нотации, но ваш админ невероятно объективен и проницателен, поэтому ненавидеть я стал только российскую систему образования. И еще решил написать этот пост, чтобы студенты понимали, почему UML полезно изучать, а преподаватели.. ну тоже.. а то пихают куда не попадя свои эти.. из трех букв......
UML – язык графического описания структур и процессов, в основном, программных. На самом деле, он не единственный подобный, но самый популярный. Почти все пользуются единственно им, так что на остальные просто забейте.
Выглядит примерно как на картинке. Тут диаграмма классов. Из важных есть еще диаграммы последовательности и прецедентов (на любителя).
Причина популярности именно UML заключается в том, что основной посыл этой нотации: "Вот тебе шесть стрелочек и пять правил, остальное сам придумаешь". Благодаря широкой свободе действий, получается легко и непринужденно выделить самое важное и отобразить на схеме без лишнего мусора
Во-первых, я уже говорил в первом пункте, что можно выделить самое важное. Теперь я говорю, что НУЖНО научиться выделять в коде важные части. И рисование схемы своего кода – отличный способ развить абстрактное мышление, начать потихонечку думать о том, что ты пишешь, о том, как выглядит твоя система и о том, не получается ли у тебя
Во-вторых, фраза "Я ему все объяснил, и даже картинку нарисовал!" свидетельствует о максимальной степени разжевывания. Наш мозг не создан понимать тексты, он создан видеть абстракции и искать закономерности. Так что та же самая система будет понята быстрее и глубже, если изобразить ее графически.
В-третьих (в дополнение к во-вторых), графические нотации – лингва франка среди разработчиков + бизнес аналитиков + менеджеров + всяких маркетологов и прочих. Да и, в большинстве, они интуитивно понятны, так что особое обучение почти не требуется. Таким образом, вы сможете наглядно показать начальнику, почему вам требуется еще две недели на
Ну конечно нет, но, как минимум, пару небольших проектов попытаться таким образом отобразить, потренироваться с этим работать. А если у вас на проекте есть документация, то там обязательно должны быть UML-диаграммы.
🤡 – уже умею рисовать, но пока только грим :(
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🤡2 2🔥1
Последний стрим по Minecraft перед поездкой в Царьград! [ + @BO3bMAK ]
Поэтому заходите - пообщаемся, ответим на вопросы, расскажем, как будет выглядеть этот канал пока мы в отъезде и поиграем!
❤1😱1
This media is not supported in your browser
VIEW IN TELEGRAM
СТРУКТУРЫ ДАННЫХ И ИХ УРОДЛИВЫЕ ДВОЙНИКИ
Так и есть, все остальные – это либо коробка, натянутая на классические структуры📦, либо более сложный элемент, положенный в обычную структуру. Итак, вот они слева направо (могут в разных языках называться по-разному, я пишу по C#):
📯 Массив (Array)
Так как место случайное, до и после может находиться любая информация, в т.ч. данные ОСи, например. Соответственно, увеличить или уменьшить это место никак не получится😞 .
Однако, беда – нельзя менять размер. Если у вас в языке можно менять размер массива - это бесстыдная неправда🤥 . Все эти операции суть – создание нового массива другого размера и копирование туда элементов🔀.
По-настоящему с этим нам поможет
📯 Список (List)
Таким образом, если понадобилось впихнуть🗜 еще циферку, в последнем элементе меняем ссылку на новый только что созданный – и пожалуйста🔗 ! Да, звучит не супер продуктивно, но уж лучше, чем пересоздавать массив😈 .
Есть подобные ему: очередь и стек(не системный стек, это другое) , двусвязный список↔️ – фактически они работают на том же принципе, только с некоторыми инвалидностями🩼.
📯 Бинарное дерево (Binary tree)
Выглядит примерно так:
5
/ \
3 8
/ / \
1 6 12
На основе дерева строятся всякие словари, часто – хэш-таблицы. Тут к основному элементу-индексатору в нагрузку привешиваются еще и данные – вот и ваш словарь.
🤷, если хотите пост про нотацию Big O
🤣 – А как же небинарное дерево?😂
Из каждого умника вы слышали про то, что любому программисту нужно выучить 5, 7, 15 способов организации циферок в коллекции. А знаете ли вы, что настоящих труЪ структур данных человечество придумало всего три?😋
Так и есть, все остальные – это либо коробка, натянутая на классические структуры📦, либо более сложный элемент, положенный в обычную структуру. Итак, вот они слева направо (могут в разных языках называться по-разному, я пишу по C#):
Это база. Когда мы создаем массив, мы берем в памяти случайное место на [вес элемента * размер массива].
Так как место случайное, до и после может находиться любая информация, в т.ч. данные ОСи, например. Соответственно, увеличить или уменьшить это место никак не получится
Исходя из определения, понимаем, что массив занимает минимально возможный размер, куда можно поместить n элементов типа X. Да и индексация (достать элемент) из него не требует больших усилий (O(1)).
Однако, беда – нельзя менять размер. Если у вас в языке можно менять размер массива - это бесстыдная неправда
По-настоящему с этим нам поможет
Здесь каждый элемент представляет собой данные и ссылку на следующий элемент. Похоже на игру, где прячут бумажки и на каждой пишут, где следующая🗺 .
Таким образом, если понадобилось впихнуть
Однако, разумеется, места он занимает больше, чем массив – ссылки не бесплатные – да и индексация медленнее (O(n)): для того, чтобы дойти до n-ного элемента, нужно до него пройти n элементов.
Есть подобные ему: очередь и стек
Существует для ускорения поиска🔍 😱 . Суть в том, что у каждого элемента есть уже две ссылки: слева от него все, что меньше, а справа - все, что больше.
Выглядит примерно так:
/ \
3 8
/ / \
1 6 12
В зависимости от сбалансированности параметры отличаются, но во всех случаях поиск элемента быстрее, чем у всех остальных (в лучшем – O(log n)). Места, разумеется, требуется больше всех. Ну и еще элемент должен быть сравниваемым.
На основе дерева строятся всякие словари, часто – хэш-таблицы. Тут к основному элементу-индексатору в нагрузку привешиваются еще и данные – вот и ваш словарь.
🤷, если хотите пост про нотацию Big O
🤣 – А как же небинарное дерево?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣6🤷3 2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
👏3
Wild Russian GameDev Mentor
Video message
Забейте, 900₽ за маленькое комбо, мы пошли есть оверпрайсный колорит.
🔥1😱1
Как вы понимаете неделю здесь будет тревел-блог. Посты тоже будут, пожалуйста, не отписывайтесь🥺
❤3🔥2👌1