Многие люди изучают алгоритмы, потому что понимание хороших эффективных алгоритмов и структур данных необходимо, чтобы быть профессиональным программистом.
Если вы знаете, как эффективно использовать алгоритмы и структуры данных, то с большей вероятностью пройдете собеседование на техническую должность.
Почти все компании предпочитают нанимать разработчиков, хорошо разбирающихся в алгоритмах и структурах данных. Помните об этом! Не откладывайте изучение фундаментальных концепций.
Знание алгоритмов помогает найти эффективное решение задачи.
Задача разработчика — использовать наиболее эффективное решение. Для этого нужно учитывать скорость работы программы, объём потребляемой памяти, экономическую эффективность (насколько стоимость решения оправдана конечным результатом), простоту реализации, масштабируемость.
Всё программирование завязано на структурах данных и алгоритмах. Первые нужны для хранения данных, а вторые — для решения задач с помощью этих данных. Если вы плохо знаете алгоритмы, вы не сможете определить, можно ли оптимизировать свой код. А от разработчика ожидают именно этого!
Примеры кода в данном курсе написаны на
C#, однако 99% материала будет ясно любому
Java-программисту, поскольку синтаксис языков очень схож.
Чему вы научитесь
На данный момент курс покрывает следующие темы (подробнее по урокам смотрите программу курса):
- Введение в алгоритмы и структуры данных: структура данных, абстрактный тип данных, разница между этими понятиями. Что такое алгоритм и почему всё это для нас важно?
- Введение в анализ алгоритмов: сколько времени займёт исполнение программы,
построение log-log графика, аппроксимации, порядок роста сложности (Big-O нотация), потребление памяти
- Массивы: массивы в C#, массивы в памяти, сложность операций на массивах
- Алгоритмы сортировки: пузырьковая, сортировка выборкой, вставками, рекурсия, Шелл-сортировка, сортировка слиянием, быстрая, стабильность алгоритмов сортировки
- Списки: List встроенный в BCL, узлы (ноды), связный список (односвязный, двусвязный),
LinkedList встроенный в BCL
- Стек: теория и практика, стеки на массиве, на связном списке, встроенный в BCL
- Очереди: теория и практика, очереди на массиве, кольцевой буфер,
на связном списке, встроенная в BCL
- Алгоритмы поиска: линейный, бинарный
- Символьные таблицы: введение, API, таблицы на последовательном поиске,
таблицы на бинарном поиске
- Хеш-таблицы: введение, хеширование, GetHashCode, подходы к разрешению коллизий: раздельные цепочки и линейное пробирование, тип Dictionary встроенный в BCL, типы представляющие множества встроенные в BCL
- Деревья: двоичное дерево поиска и его реализация (больше будет добавлено в будущем)
- Пирамиды: введение, пирамиды и массивы, пирамидальная сортировка
- Различные алгоритмы: этот раздел будет расширяться, а пока включает алгоритм «решето Эратосфена»
Это достаточно полное руководство по алгоритмам и структурам данных.
Курс практический с домашними заданиями и разбором решений.Для кого этот курс- C#-разработчики, которые хотят изучить алгоритмы и структуры данных на их любимом языке
- C# и Java-разработчики, желающие повысить свой профессиональный уровень востребованными знаниями и опытом эффективного применения алгоритмов и структур данных
- Начинающие разработчики, которые готовятся к поиску работы и прохождению собеседований
Требования для прохождения курса- Знание C# или Java на базовом уровне
- Из инструментов достаточно Visual Studio Community Edition (это бесплатная полнофункциональная расширяемая среда IDE для создания современных приложений Android, iOS и Windows, а также веб-приложений и облачных служб)
Прежде чем углубляться в изучение Алгоритмов и структур данных, рекомендуем получить базовые знания по основам и языкам программирования C# и Java в наших курсах:
Программирование на C# – от новичка до специалиста
Программирование на Java с нуля
ВСЕ КУРСЫ - Языки программирования
-
Цена - 1 788 руб.
- Продолжительность курса составляет 14 часов
- В рассрочку от школы 149 руб.