Vendetta
Администратор
- Регистрация
- 16 Сен 2015
- Сообщения
- 238.594
- Реакции
- 426.072
Складчина: Добрые, добрые структуры данных [Stepik] [Сергей Балакирев]
Для грамотной разработки программного кода нужно не только хорошо владеть языком программирования, но и предельно ясно представлять себе как эффективно организовывать хранение и обработку данных в процессе работы программы. Именно для этого и нужно знать основные структуры данных, понимать как они работают, какие у них преимущества и недостатки, чтобы грамотно выбирать лучшие способы представления данных при решении каждой конкретной задачи.
О курсе
Этот курс - очередная важная ступенька вашего становления, как грамотного IT-специалиста в области программирования. После того, как вы изучили базовые возможности языка, его объектно-ориентированную составляющую, следующим логичным шагом является изучение типовых, часто используемых структур данных, знание их сильных и слабых сторон для эффективного использования в своих проектах.
Любая более-менее состоятельная программа использует хотя бы одну простейшую структуру данных, например, массивы. А в более сложных проектах всегда присутствуют и более сложные вроде связных списков, хэш-таблиц, множеств, ассоциативных массивов и так далее. Все это нужно знать, чтобы ваши программы получались максимально быстрыми и при этом экономно расходовали память устройства. Мало того, почти всегда на собеседованиях при приеме на работу на должность программиста задаются вопросы по структурам данных и способах оценки сложности алгоритмов, как правило, с позиции "О большого" (Big O). Как раз все эти важные темы входят в данный курс. Его прохождение позволит вам не только увереннее составлять алгоритмы, но и успешнее проходить собеседования при будущем трудоустройстве.
В курс входят:
28 уроков
6часов 21минута видео
187 тестов
76 интерактивных задач
Преподаватель: Сергей Балакирев
Чему вы научитесь:
1. Узнаете как правильно определять вычислительную сложность типовых алгоритмов (показатель О большое - Big O).
2. Познакомитесь со статическими и динамическими массивами.
3. Подробно изучите одно- и двусвязные списки, а также их использование для построения очередей и стеков.
4. Увидите, что из себя представляют бинарные деревья и как они применяются для описания упорядоченных множеств.
5. Познакомитесь с префиксными (нагруженными) деревьями и их применением для построения ассоциативных массивов.
6. Изучите основы хэш-таблиц, способы построения хэш-функций и методами устранения коллизий.
Спойлер: Программа курса
1. Учимся оценивать вычислительную сложность алгоритмов
Введение в Big O
Big O логарифмической и факториальной сложности
2. Простейшие структуры данных
Статический массив
Статический массив на С++
Динамический массив
Динамический массив на Python
Динамический массив на С++
3. Связные списки
Односвязный список
Односвязный список на С++
Двусвязный список
Двусвязный список на С++ с нуля
Класс list двусвязного списка библиотеки STL языка С++
4. Очереди и стек
Очереди типов FIFO и LIFO
Очередь collections.deque на Python
Класс deque очереди библиотеки STL языка C++
Стек (stack)
Реализация стека на Python и C++
5. Деревья и множества
Бинарные деревья
Способы обхода и удаления вершин бинарного дерева
Бинарное дерево на Python
Множества (set). Операции над множествами
Множества set и multiset в C++
Контейнер map библиотеки STL в C++
Префиксное (нагруженное, Trie) дерево. Ассоциативные массивы
6. Хэш-таблицы
Хэш-таблицы
Универсальное хэширование
Метод открытой адресации. Двойное хэширование
Хэш-таблицы в языках Python и С++
Для грамотной разработки программного кода нужно не только хорошо владеть языком программирования, но и предельно ясно представлять себе как эффективно организовывать хранение и обработку данных в процессе работы программы. Именно для этого и нужно знать основные структуры данных, понимать как они работают, какие у них преимущества и недостатки, чтобы грамотно выбирать лучшие способы представления данных при решении каждой конкретной задачи.
О курсе
Этот курс - очередная важная ступенька вашего становления, как грамотного IT-специалиста в области программирования. После того, как вы изучили базовые возможности языка, его объектно-ориентированную составляющую, следующим логичным шагом является изучение типовых, часто используемых структур данных, знание их сильных и слабых сторон для эффективного использования в своих проектах.
Любая более-менее состоятельная программа использует хотя бы одну простейшую структуру данных, например, массивы. А в более сложных проектах всегда присутствуют и более сложные вроде связных списков, хэш-таблиц, множеств, ассоциативных массивов и так далее. Все это нужно знать, чтобы ваши программы получались максимально быстрыми и при этом экономно расходовали память устройства. Мало того, почти всегда на собеседованиях при приеме на работу на должность программиста задаются вопросы по структурам данных и способах оценки сложности алгоритмов, как правило, с позиции "О большого" (Big O). Как раз все эти важные темы входят в данный курс. Его прохождение позволит вам не только увереннее составлять алгоритмы, но и успешнее проходить собеседования при будущем трудоустройстве.
В курс входят:
28 уроков
6часов 21минута видео
187 тестов
76 интерактивных задач
Преподаватель: Сергей Балакирев
Чему вы научитесь:
1. Узнаете как правильно определять вычислительную сложность типовых алгоритмов (показатель О большое - Big O).
2. Познакомитесь со статическими и динамическими массивами.
3. Подробно изучите одно- и двусвязные списки, а также их использование для построения очередей и стеков.
4. Увидите, что из себя представляют бинарные деревья и как они применяются для описания упорядоченных множеств.
5. Познакомитесь с префиксными (нагруженными) деревьями и их применением для построения ассоциативных массивов.
6. Изучите основы хэш-таблиц, способы построения хэш-функций и методами устранения коллизий.
Спойлер: Программа курса
1. Учимся оценивать вычислительную сложность алгоритмов
Введение в Big O
Big O логарифмической и факториальной сложности
2. Простейшие структуры данных
Статический массив
Статический массив на С++
Динамический массив
Динамический массив на Python
Динамический массив на С++
3. Связные списки
Односвязный список
Односвязный список на С++
Двусвязный список
Двусвязный список на С++ с нуля
Класс list двусвязного списка библиотеки STL языка С++
4. Очереди и стек
Очереди типов FIFO и LIFO
Очередь collections.deque на Python
Класс deque очереди библиотеки STL языка C++
Стек (stack)
Реализация стека на Python и C++
5. Деревья и множества
Бинарные деревья
Способы обхода и удаления вершин бинарного дерева
Бинарное дерево на Python
Множества (set). Операции над множествами
Множества set и multiset в C++
Контейнер map библиотеки STL в C++
Префиксное (нагруженное, Trie) дерево. Ассоциативные массивы
6. Хэш-таблицы
Хэш-таблицы
Универсальное хэширование
Метод открытой адресации. Двойное хэширование
Хэш-таблицы в языках Python и С++
Для просмотра скрытого содержимого вы должны зарегистрироваться
Возможно, Вас ещё заинтересует:
- Lingvo AI — личный AI-тренажёр иностранного языка: курс из Ваших слов, разговор с AI голосом, карточки FSRS, чтение книг.
- Клуб Минус отёки. Плоский живот (октябрь 2026) [Мария Фомичева]
- Клуб ВсеЛенской терапии 2.0. Деньги в нашей жизни (октябрь 2026) [Тариф Standard] [Леонид Тальпис]
- Деньги бесплатны [Роуз Лоуренс]
- Тренды и бизнес-модели каждую неделю [№11 на 1 месяц с 27.10.2026] [tweekly.ru] [Алексей Черняк]
- Символическая жизнь. Том 1. Тавистокские лекции [Карл Густав Юнг]
- Подработка практикум [Деньгинс] [Дарья Семенова]
- [Вязание] Вязаный спицами жакет Ihana из пряжи букле регланом сверху [Вяжи.ру] [Megumi Shinagawa]