Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
48 - Telegram Web
Telegram Web
Структуры данных - это способы организации и хранения данных в программировании. Они играют важную роль в эффективной обработке и манипуляции данными. Вот некоторые популярные структуры данных и их особенности:

1. Массивы:
- Суть: Массив - это упорядоченная коллекция элементов, расположенных в памяти последовательно.
- Плюсы: Быстрый доступ к элементам по индексу, простота использования.
- Минусы: Фиксированный размер, сложность вставки и удаления элементов в середине массива.

2. Связанные списки:
- Суть: Связанный список - это коллекция элементов, где каждый элемент содержит ссылку на следующий элемент.
- Плюсы: Гибкость вставки и удаления элементов, отсутствие ограничений на размер списка.
- Минусы: Нет прямого доступа к элементам по индексу, требуется дополнительная память для хранения ссылок на следующие элементы.

3. Стек:
- Суть: Стек - это структура данных, работающая по принципу "последним пришел, первым вышел" (LIFO).
- Плюсы: Простота использования, эффективность операций вставки и удаления элементов.
- Минусы: Ограниченный доступ к элементам (только верхний элемент стека доступен для чтения/удаления).

5. Деревья:
- Суть: Дерево - это иерархическая структура данных, состоящая из узлов и связей между ними.
- Плюсы: Быстрый поиск, вставка и удаление элементов, возможность представления иерархической структуры данных.
- Минусы: Сложность реализации и обработки, потребление большого объема памяти.

6. Хэш-таблицы:
- Суть: Хэш-таблица - это структура данных, которая использует хэш-функцию для преобразования ключей в индексы массива.
- Плюсы: Быстрый доступ к элементам по ключу, эффективность операций вставки и удаления элементов.
- Минусы: Возможность коллизий (когда двум разным ключам соответствует один и тот же индекс), требуется дополнительная память для хранения хэш-таблицы.

Каждая структура данных имеет свои преимущества и недостатки, и выбор зависит от конкретной задачи и требований проекта.
👍131
Фронты поймут. И это ни*уя не смешно
🤣10👍2
🤣11🤡7👍1
Кто поставил клоуна?
Я тебя по IP вычислю и заставлю продвинутый курс по ассемблеру смотреть
🤡24🤣6👍1
Сколько раз перепроверяете код перед отправкой?
💯8👍2
👍21🔥1
👍13🔥1😁1
Быстрая сортировка (Quick Sort): Один из самых быстрых алгоритмов сортировки. Этот алгоритм относится к группе алгоритмов "разделяй и властвуй". Он выбирает опорный элемент из массива и разделяет массив на две части: элементы, меньшие опорного, и элементы, большие опорного. Затем он рекурсивно сортирует каждую из этих частей. Быстрая сортировка обладает хорошей производительностью и может быть ОЧЕНЬ эффективной на практике. Давайте разберем алгоритм поэтапно.

Всего у этого алгоритма 3 этапа:

1)берем не отсортированный массив [5,2,4,6,1,15]
2)выбираем ”опорный” элемент, от которого будем отталкиваться при разделении, пусть это будет “6”
3)размещаем меньшие значения слева от опорного элемента, а большие - справа, делаем это путем прохода каждого элемента

Итак, получаем [1,4,2,5] - 6 - [15]

Как видим у нас слева и справа от опорного элемента образовалось 2 массива, при том что правый массив сортировать больше не нужно! Так как там один элемент.

Итого у нас остается только левый массив, с которым мы повторяем шаги с 1 по 3.(тут проявляется рекурсивность алгоритма, тут мы выполняем те же действия, а в коде функция вызывает сама себя)

1) берем не отсортированный массив [1,4,2,5]
2)выбираем ”опорный” элемент, от которого будем отталкиваться при разделении, пусть это будет последний элемент “5”
3)размещаем меньшие значения слева от опорного элемента, а большие - справа, делаем это путем прохода каждого элемента

Итак, получаем [1,4,2] - 5 - []
повторяем шаги 1-3 для оставшегося левого массива, опорный элемент в следующем проходе будет “4”

[1,2] - 4
Теперь обьединяем все полученные массивы воедино:
[1 ,2 ,4 ,5 ,6, 15]

PROFIT! Теперь вы знаете рекурсивный алгоритм быстрой сортировки.
Пример реализации на C# выложу в комментариях.
👍82🔥1
Естественно я знаю, что HTML это не ЯП.
Все это ради рофла, смешно читать как прогеры со 100 процентной вероятностью начинают говниться и люто душнить 😁
🤣19👍3🤡2
🤣184👍2
Все уходим писать код для российских дронов!
💯17👍5🤣4🤡3🗿2
🤣21🔥3👍1
Настолько БАЗА, что уже даже немного баян.

Тем не менее если вы Джун и у вас проблемы со структурами данных и алгоритмами, то эта книга поможет вам решить их.
В игровой форме с картинками объясняются популярные алгоритмы и структуры данных, а так же смежные с ними определения (big O notation, логарифмы)

Так же все что тут есть вас будут спрашивать на собесах. Про структуры данных, сложность операций с ними, и простенькие алгоритмы сортировки уж точно.
👍152😁2
Джуны и удалёнка.

Удалёнка для джунов это не вариант(по моему субъективному мнению) и вот почему:
Отсутствие живого общения с тимлидом и коллегами. Это сильно замедляет рост начинающему специалисту. Конечно, вы можете возразить "я же могу созваниваться по видеосвязи, я же могу писать за помощью и ТД..."
Нет, это все х***я, когда речь идёт о росте. В офисе, когда все рядом, вы можете просто дёрнуть нужного человека и задать любой вопрос, хоть самый тупой, но вы получите ответ, случится что-то ещё - зададите ещё вопрос. За таким же вопросом вам будет стремно выдергивать человека на целый созвон, текстом писать свой тупой вопрос, от которого, как вам будет казаться, так и веет кринжом, и будете стараться все решать самостоятельно, иначе говоря вариться в собственном соку, от чего нет никакого толка.

Сейчас рынок запихивает сотрудников обратно в офисы, джуны должны этим пользоваться и охапкой черпать опыт, пока дают. Если вам в условиях заявляют о полной удалёнке, лучше отказаться, и искать минимум гибрид.
Джун, который работал год на удалёнке ≠ джун, который год работал из офиса рядом с опытными коллегами.
А что думаете вы?
👍20😁2🔥1
Почему singleton это антипаттерн?

Многие знают этот факт как аксиому, которую не нужно доказывать. "Ну антипаттерн и все, на собесах вообще молчим про него"
Но за этой аксиомой кроется несколько интересных деталей, объясняющих почему синглтон это антипаттерн.

1) Синглтон сильно осложняет тестирование, так как Singleton предоставляет глобальную точку доступа к единственному экземпляру класса, его трудно изолировать для тестирования. Тесты должны учитывать влияние других частей системы на этот единственный экземпляр.

2) И самое интересное - singleton нарушает почти все принципы solid(4 из 5).
Остановимся тут поподробнее:

S - Принцип единой ответственности:
Класс синглтона, помимо выполнения своих непосредственных обязанностей, занимается еще и контролированием количества своих экземпляров. Зависимость обычного класса от синглтона не видна в интерфейсе класса.

O — принцип открытости/закрытости: объекты должны быть открыты для расширения, но закрыты для изменения. Синглтон нарушает данный принцип, так как контролирует точку доступа и возвращает только самого себя, а не расширение.

L — принцип подстановки Барбары Лисков: объекты могут быть заменены экземплярами своих подтипов без изменения использующего их кода. Это неверно в случае с синглтоном, потому что наличие нескольких разных версий объекта означает, что это уже не синглтон.

I — принцип разделения интерфейса: много специализированных интерфейсов лучше, чем один универсальный. Это единственный принцип, который синглтон нарушает не напрямую, но лишь потому, что он не позволяет использовать интерфейс.

D — принцип инверсии зависимостей: вы должны зависеть только от абстракций, а не от чего-то конкретного. Синглтон нарушает его, потому что в данном случае зависеть можно только от конкретного экземпляра синглтона.
👍131😁1
📝 Шпаргалка по шаблонам проектирования. Она может быть полезна как знатокам, так и джунам в качестве спасательного круга, когда на собесе нечего ответить по паттернам.

Сохраняй себе и делись с друзьями! Версию в исходном качестве скину в комментариях.
👍133🔥1😁1
Выкладывать ли какие-то заметки по фронту? HTML, CSS, REACT и тд
Anonymous Poll
45%
Да
12%
Нет
43%
Тут вообще-то программисты собрались
2025/07/10 19:33:53
Back to Top
HTML Embed Code: