Блог

Новый курс "Алгоритмы и структуры данных"

Общие подходы и полезные методики для решения сложных задач!
1 минута7770

Без знаний алгоритмов начинающий программист часто изобретает велосипед вместо того, чтобы решать задачу уже проверенными способами. Современные языки программирования всячески облегчают жизнь программиста, выполняя множество "грязной" работы. С одной стороны, это хорошо, но с другой - многие современные программисты перестают понимать, как на самом деле работает компьютер. Знание алгоритмов и структур данных просто необходимо как начинающим, так и уже работающим программистам.

Пользуетесь ли вы списком или стеком? Знаете ли вы, как они работают? Если нет, то как вы можете быть уверены в правильности выбранного вами алгоритма? Умение определять и сравнивать их сложность - первый шаг к пониманию алгоритмов и структур данных.

Измерение сложности алгоритмов - что это такое? 

Начнём с другого вопроса: сколько времени уходит на обработку массива из десяти элементов? А сколько уйдёт на обработку тысячи, миллионов элементов? Измерение сложности алгоритма - это анализ времени, которое требуется для обработки очень большого количества данных. Такой процесс называется "асимптотический анализ".

Задача: алгоритм обрабатывает пятьсот элементов за 10 миллисекунд. Что будет, если загрузить в него ещё тысячу? Сколько времени уйдёт на обработку данных: десять минут, три года? Стоит ли задумываться об этом перед тем, как сдавать проект заказчику?

Новый курс GeekBrains "Алгоритмы и структуры данных"

На курсе мы подробно исследуем язык C - это превосходная возможность “пощупать” механизмы, которые лежат в основе современных фреймворков.

Чему вы научитесь:

  • Основам программирования на языке C;
  • Структурам данных и алгоритмам, которые лежат в основе их работы;
  • Общим подходам и полезным методикам для решения сложных задач;
  • Инструментам оценки сложности решаемых задач;
  • Создавать консольные программы на языке C в среде разработки QT;
  • Создавать программы, используя собственные алгоритмы;
  • Создавать собственные структуры данных: стеки, списки, деревья и др.;
  • Оценивать производительность программ;
  • Использовать “незащищённый” режим работы с памятью, основанный на указателях;
  • Динамически выделять и освобождать память;
  • Использовать рекурсию.

Мы добавили новый курс в профессии:

Посмотреть описание уроков и дату начала обучения можно здесь:

 

алгоритмструктуры данныхgeekbrainsjava разработчикязык cjava_developer
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup